现在的位置: 首页 > 综合 > 正文

SQL Server 2005 中文乱码解决方法

2013年10月09日 ⁄ 综合 ⁄ 共 835字 ⁄ 字号 评论关闭

中文存到数据库中总是显示乱码。DEBUG发现页面中文到Service都是正确的中文。

解决办法:

1.关闭所有与此数据库的相关连接或者会话或者相关程序

2.然后将 SQL_Latin1_General_CP1_CI_AS 修改为 Chinese_PRC_CI_AS (alter databasedb_name collate Chinese_PRC_CI_AS) 属性-》选项

3.将varchar类型修改为nvarchar 就没问题了。或者。如果表里面没有数据的话,把表结构重新建立,建表的时候需要注意不要带“SQL_Latin1_General_CP1_CI_AS”排序规则。

后来检查数据库连接字段,发现一个参数

sendStringParametersAsUnicode=false

将其改为 sendStringParametersAsUnicode=true 问题解决。

查MSDN资料

如果 sendStringParametersAsUnicode 属性设置为“true”,则字符串参数将以 Unicode 格式发送给服务器。

如果 sendStringParametersAsUnicode 属性设置为“false”,则字符串参数将以非 Unicode 格式(例如 ASCII/MBCS 而不是 Unicode)发送给服务器。

sendStringParametersAsUnicode 属性的默认值为“true”。

本人有个项目使用php+mssql,而mssql只支持gb2312和utf-16编码,而php又要求使用utf-8编码,想到了freetds.而freetds是个在unix下开发的工具,我下载php_dblib.dll

在freetds进行设置,即可让FreeTDS生效。This is only used when compiled with FreeTDS。mssql默认是不支持设置字符集的,只有安装freetds的时候才能生效。http://hudeyong926.iteye.com/blog/1286307

抱歉!评论已关闭.