SQL SERVER2005 中文字符为乱码解决参考方法
使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库教程上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
5、点击确定就OK。
varchar修改为nvarchar
char修改为nchar
注:如
两种方法:
1:
安装时不要选 Hide advice configuration options
然后再 Collation designator and order 中选择 Chinese_PRC 就可以了。
2:
在建表时指明某个字段的语言
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL,
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL
)
insert test values('中文','中文')
插入后 字段 a 为 中文 ,b 为 ??
其它参考资料
中文存到数据库中总是显示乱码。DEBUG发现页面中文到Service都是正确的中文。试着在数据库中把字段值改为中文(字段类型为Nvarchar),结果页面上可以正确显示,说明页面设置正确。 问题出在数据库层。
后来检查数据库连接字段,发现一个参数
sendStringParametersAsUnicode=false
将其改为 sendStringParametersAsUnicode=true 问题解决。
查MSDN资料
如果 sendStringParametersAsUnicode 属性设置为“true”,则字符串参数将以 Unicode 格式发送给服务器。
如果 sendStringParametersAsUnicode 属性设置为“false”,则字符串参数将以非 Unicode 格式(例如 ASCII/MBCS 而不是 Unicode)发送给服务器。
sendStringParametersAsUnicode 属性的默认值为“true”。