PHP中的SQLServer数据丢失多字节字符

时间:2009-10-14 00:41:44

标签: php sql-server unicode odbc

我有PHP使用FreeTDS和unixODBC通过ODBC与SQLServer通信。我按照tutorials进行了此设置。虽然数据库中的特殊字符没有正确显示,但它现在工作正常。具体来说,是™符号。它在浏览器中显示为 。我已经尝试在freetds.conf的[global]部分设置client charset = UTF-8。我在PHP中尝试了iconv('UCS-2', 'UTF-8', $str)mb_convert_encoding($str, 'UTF-8', 'UCS-2'),两者都产生了亚洲字符集(䐧祲圠攮戮餮吠渭捥❫)。我很难过!有人有任何提示吗?

另外一个要提到的元素:当我在本地计算机上运行此代码时,我没有这些问题。例如,™显示罚款。我的本地机器是mac,我正在使用Actual Technologies ODBC driver。我遇到麻烦的地方是我们的LAMP网络服务器。这让我相信问题在于驱动程序配置。或者整个Linux可能需要通知UTF-8?

1 个答案:

答案 0 :(得分:0)

正如它在带有该符号的浏览器中所示,您确认HTML页面具有正确的字符集吗?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

如果是,您是否确认使用了正确的数据类型?