MSSQL + Codeigniter:Cyrillic显示为问号

时间:2013-09-30 08:27:19

标签: sql-server codeigniter character-encoding

我有西里尔字符的问题。这是显示我如何设置所有内容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文件的其他西里尔语语言数据显示正确。可能导致这种情况的原因是什么?

2 个答案:

答案 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数据类型显示西里尔语吧!