使用FreeTDS扩展从MSSQL获取UTF-8编码的数据似乎无法实现。
连接中:
ini_set('mssql.charset', 'UTF-8');
$this->_resource = mssql_connect($config['servername'], $config['username'], $config['password']);
我没有使用任何其他扩展的能力。
我已经尝试创建~/.freetds.conf文件。
[global]
client charset = UTF-8
我已经尝试将参数传递给PHP:
php -d mssql.charset="UTF-8" index.php
数据仍然不是UTF-8编码。
php -i
mssql
MSSQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Library version => FreeTDS
Directive => Local Value => Master Value
mssql.allow_persistent => On => On
mssql.batchsize => 0 => 0
mssql.charset => no value => no value
mssql.compatability_mode => Off => Off
mssql.connect_timeout => 5 => 5
mssql.datetimeconvert => On => On
mssql.max_links => Unlimited => Unlimited
mssql.max_persistent => Unlimited => Unlimited
有什么想法?
client charset = UTF-8
,这可能是为什么Mariu Grigaitis使用它的解决方案没有奏效的原因。请参考此要点中提供的freetds.conf
示例:https://gist.github.com/johnkary/6643856 - John Karyini_set
部分。 - Hannes Schneidermayer