我正在使用ODBC连接来访问SQL Server数据库并从中获取字符串。问题是我在字符串中得到?
个符号,例如应该是ē
。
这是我正在使用的代码:
if(($result = odbc_exec($connect, $sql)) !== false) {
while( $obj = odbc_fetch_object( $result )) {
if ($obj->PLK_STATUSS == '10') {
echo $obj->DESCRIPTION;
}
}
}
它应该回显Piemērs
,但我得到的是Piem?rs
。
我放了
<meta http-equiv="content-type" content="text/html; charset=utf-8"</meta>
在头上。我也尝试过
echo utf8_decode($obj->DESCRIPTION);
没有运气。
还有什么问题?我没有php经验,所以可能很简单。
编辑:
如果我只是echo "Piemērs";
,那就行了。
编辑: 我正在使用FreeTDS创建ODBC连接。我的猜测是ODBC配置有问题。从其他来源我发现在freetds.conf文件中应该有一行
client charset = UTF-8
但是,当我添加此行时,网页停止工作,并且在浏览器中显示ERR_EMPTY_RESPONSE
。
答案 0 :(得分:1)
我设法解决了从ODBC更改为PDO的问题。
$conn = new PDO('dblib:charset=UTF-8;host='.Configure::read('SERVERNAME').';dbname='.Configure::read('DB'),
Configure::read('USERNAME'),
Configure::read('PASSWORD')
);
答案 1 :(得分:1)
问题可能是由于php版本较新。 ODBC在php5中工作时也有同样的问题,但升级到php7时必须将其更改为PDO。