我有西里尔字符的问题。这是显示我如何设置所有内容http://i.stack.imgur.com/UHssn.jpg的图像。正如你所看到的,一切都是UTF-8,但仍然是西里尔字符从服务器出来作为questionmark钻石。我使用了mb_detect_encoding -function,它说那些钻石是UTF-8编码。
当我通过bin2hex运行时,它会给出:
1100 - cccdcec3ced1cbcec9cdc0df20cac5d0c0ccc8cac0
1200 - d2cecbd1d2cecfcbc5cdced7cdc0df20cac5d0c0ccc8cac0
1300 - c1cecdc4c8cdc32fcdc0cdc5d1c5cdc8c520ddcfcecad1c8c4cac8
1400 - d3d1d2c0cdcec2cac020cad0c8d1d2c0cbcbcec2
1500 - d3d1d2c0cdcec2cac020cfd0cec2cec4cec2
1600 - c1cecdc4c8cdc32fc8cdcac0cfd1d3cbdfd6c8df
问题仅在于来自MSSQL服务器的数据。来自php lang文件的其他西里尔语语言数据显示正确。可能导致这种情况的原因是什么?
答案 0 :(得分:0)
我建议您将排序规则更改为utf_bin
并尝试一次。并将此行放在页面顶部:
<?=header('Content-Type: text/html; charset=UTF-8');?>
答案 1 :(得分:0)
我从其他stackoverflow问题中找到了解决方案!
在/etc/freetds/freetds.conf中,必须添加这两行。
[global]
tds version = 8.0
client charset = UTF-8
现在nchar和nvarchar数据类型显示西里尔语吧!