php使用odbc的方式从sqlserver2005中读取中文显示出现黑点
我使用php通过odbc的方式从sqlserver中读取中文然后显示在网页中,网页的编码为UTF-8,网页源代码文件编码为UTF-8,我使用mb_convert_encoding函数将读取到的中文转为UTF8显示,在chrome下面没有问题。但是在IE8下面,能够显示中文,但是在中文后面多出一个黑点,但是查看源代码又没有这个黑点。请问这是什么原因啊?谢谢!
sqlserver mb_convert_encoding php 乱码
santu
10 years, 11 months ago
Answers
在数据库设计中,需要注意一个问题就是中文的存储问题。对于固定长度的中文可以使用nchar,但是对于可变长度的中文一定要使用nvarchar,这样在用php的函数mb_convert_encoding的时候,才不会出错。如果你用了nchar,那么如果提供的字符数目不够定义的长度时,默认会填充空白字符。这样会导致编码转换出错。在UTF-8的页面里面,可以使用
mb_convert_encoding($str,"UTF-8","GBK");
来讲sqlserver的中文转换为UTF-8。默认安装sqlserver中文的时候选择的collation方式是Chinese_PRC_CI_AS。谢谢大家了。
新吉恩的道标
answered 10 years, 11 months ago