Unicode字符显示为ODBC

时间:2015-04-27 07:07:48

标签: php odbc

我创建了一个使用excel(.xls)文件作为数据库记录的程序。我可以查询它并获得良好的结果,整个程序几乎可以工作,除了它涉及到任何unicode字符。一旦脚本完成,它会将结果写入制表符分隔的.txt文件,但是我在替换某些字符时会收到问号(?),它还会显示x92等替换撇号的内容( &#39)

我尝试过很多改变之类的事情 来自iso-8859-1的<meta charset="UTF-8">,以及x92似乎出现时的情况,但我对此并不确定。

我很确定这个问题与ODBC如何检索数据有关。原始数据源很好,所有unicode字符等都显示正常,但在我提取数据之后,我在对数据做任何其他事情之前回显到屏幕,我可以看到出现在那里的问号。

我目前使用此代码连接到excel

$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;Client_CSet=UTF-8;DefaultDir=$excelDir;" , "Server_CSet=Windows-1251", "");

我添加了&#34; Client_CSet = UTF-8;&#34;并且,&#34; Server_CSet = Windows-1251&#34;我从许多谷歌搜索中发现我试图解决这个问题,但它没有改变一件事。我完全难过了。

1 个答案:

答案 0 :(得分:0)

值如何存储在数据库中?如果数据库值包含问号而不是unicode字符,那么您必须更改该表的排序规则以及该字段的排序规则。