我使用php通过odbc的方式从sqlserver中读取中文然后显示在网页中,网页的编码为UTF-8,网页源代码文件编码为UTF-8,我使用mb_convert_encoding
函数将读取到的中文转为UTF8显示,在chrome下面没有问题。但是在IE8下面,能够显示中文,但是在中文后面多出一个黑点,但是查看源代码又没有这个黑点。请问这是什么原因啊?谢谢!
在数据库设计中,需要注意一个问题就是中文的存储问题。对于固定长度的中文可以使用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
。谢谢大家了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。