SQL Server 2005 中文乱码解决

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

解决办法:

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

2.然后将  SQL_Latin1_General_CP1_CI_AS 修改为 Chinese_PRC_CI_AS ( alter database db_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

你可能感兴趣的:(数据结构,sql,SQL Server)