欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SqlServer数据库中文乱码问题解决方法

程序员文章站 2022-04-16 16:37:07
问题:创建新数据库,存入中文显示乱码???原因分析:sql版的乱码问题还是出现在sql server的安装设置上。默认安装时系统默认的排序规则是拉丁文的排序规则,但一般人在安装时没有考虑到这一点,安装...

问题:创建新数据库,存入中文显示乱码???

原因分析:sql版的乱码问题还是出现在sql server的安装设置上。默认安装时系统默认的排序规则是拉丁文的排序规则,但一般人在安装时没有考虑到这一点,安装时只是点取下一步,安装完成后,造成了sql版在使用过程中出现乱码。

解决方法1:

如果是新建数据库,可以在建立数据时指定排序规则,记得选中文简体(chinese_prc_cs_ai_ws);如果数据库中已经有数据,则转换 编码会失败

操作步骤

1.右键数据库》属性

2.点击“选项”》修改排序方式

SqlServer数据库中文乱码问题解决方法

解决方法2:

最彻底的就是重装sql,在安装时自定义安装,选好语言版本及排序规则,这样问题就解决了。

参数解释如下:
前半部份:指unicode字符集,chinese_prc_指针对大陆简体字unicode的排序规则。
排序规则的后半部份即后缀 含义:
  _bin 二进制排序
  _ci(cs) 是否区分大小写,ci不区分,cs区分
  _ai(as) 是否区分重音,ai不区分,as区分   
  _ki(ks) 是否区分假名类型,ki不区分,ks区分 
_wi(ws) 是否区分宽度wi不区分,ws区分 
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

sqlserver 建库指定utf-8 修改库为utf-8编码

create database paas collate chinese_prc_ci_as
go
alter database paas collate chinese_prc_ci_as
go

让asp和ms sql server支持utf-8编码存储多国语言文字

近日在asp+ms sql存储utf-8编码内容的时候,出现乱码的情况,经过查询发现要使sql server支持utf-8编码格式,必须做一些修改才可以。

1、确保asp页面是utf-8编码的,并在asp页面顶部声明中使用<%@ language = vbscript codepage = 65001%>进行编码声明
2、输出的html页面中声明字符集:<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
3、在进行url参数传递的时候,要使用server.urlencode()方法进行编码
4、使用js进行url参数传递中文的时候,要使用escape进行编码
5、在将utf-8编码的内容存入sql server数据库中的时候,要存储的字段必须设置为nvarchar类型,sql语句要在内容前加n表示,如insert into user (name) values (n´&username&´),除id意外的字段都需要加n。

更多看看这里:

字符数据类型是固定长度,nchar,或可变长度,nvarchar,unicode数据,并使用unicode ucs-2字符集.

也在这里:

较早的ucs-2(2字节通用字符集)是类似的字符编码,1996年7月在unicode标准的2.0版中被utf-16所取代。