使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题。
1、登录服务器打开Microsoft SQL Server Management Studio。
2、在要修改的数据库上单击鼠标右键,并选择“属性”。
3、在弹出的数据库属性窗口中点击“选择页”中的“选项”。
4、将排序规则由默认的SQL_Latin1_General_CP1_CI_AS修改为Chinese_PRC_CI_AS。
5、点击确定就OK。
注:如果无法修改的话,请尝试关闭所有与此数据库的连接,实在不行的话请重启动SQL SERVER服务。
原因分析:
SQL版的乱码问题还是出现在SQL SERVER的安装设置上。默认安装时系统默认的排序规则是拉丁文的排序规则,但一般人在安装时没有考虑到这一点,安装时只是点取下一步,安装完成后,造成了插入了数据的过程中出现乱码。
解决方法:
如果是新建数据库,可以在建立数据时指定排序规则,记得选中文简体;最彻底的就是重装SQL,在安装时自定义安装,选好语言版本及排序规则,这样问题就解决了。
应该选择的排序规则是:Chinese_PRC_CS_AI_WS
也可以单独为每一个数据库修改排序规则
1、启动Microsft SQL Server Management Studio Express(可以自己安装)登录到一个实例服务器。
2、右击你需要修改的数据库,在弹出的快捷菜单中选择“属性”。
3、在打开的窗口中单击“选项”。
4、把“排序规则”改为 "Chinese_PRC_CI_AI” 单击“确定”就行了。
图解如何新建数据库不会乱码:
第一步![]()
第二步,连接后新建数据库
第三步,输入数据库名
第四步,在“选项”里的“排序规则”选择如图
强烈建议先这样操作,建立数据库,然后再从Visual Studio 2005的数据库管理里,进行相关的操作
另一种解决方法:
另一种解决方法
向英文版的sql server中,插入或者修改中文数据的时候,全部成了乱码,
字段已经是nvarchar类型的了,还是乱码,纳闷ing。
解决之道就是在要插入的中文字符的引号前加N
比如一般情况下
insert into theme(name,about) values('pusu',' sql专题站');
而要想在英文版的sql server中不乱码,就必须
insert into theme(name,about) values('pusu',N' sql专题站');
