天天看点

SQL Server 2005 中文乱码解决

解决办法:

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

2.然后将  sql_latin1_general_cp1_ci_as 修改为 chinese_prc_ci_as ( alter database db_namecollate 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