首页  >  问答  >  正文

乱码 - php使用odbc的方式从sqlserver2005中读取中文显示出现黑点

我使用php通过odbc的方式从sqlserver中读取中文然后显示在网页中,网页的编码为UTF-8,网页源代码文件编码为UTF-8,我使用mb_convert_encoding函数将读取到的中文转为UTF8显示,在chrome下面没有问题。但是在IE8下面,能够显示中文,但是在中文后面多出一个黑点,但是查看源代码又没有这个黑点。请问这是什么原因啊?谢谢!

迷茫迷茫2724 天前690

全部回复(2)我来回复

  • PHPz

    PHPz2017-04-10 13:11:35

    在数据库设计中,需要注意一个问题就是中文的存储问题。对于固定长度的中文可以使用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。谢谢大家了。

    回复
    0
  • ringa_lee

    ringa_lee2017-04-10 13:11:35

    这个很明显是CSS中无序排列 ul li 的 list-style-type 属性,即列表符号。
    解决办法,找到相应的CSS ,给 li 加上

    list-style:none;

    回复
    0
  • 取消回复