【发布时间】:2020-12-31 21:46:44
【问题描述】:
首先,我没有选择在我的主机上使用最新的 SQLSRV 驱动程序,所以我被 odbc 连接卡住了。
$connection_string = 'DRIVER={SQL Server};SERVER=111.111.111.111;DATABASE=MY_DATABASE';
$user = 'name';
$pass = 'pass';
$connection = odbc_connect( $connection_string, $user, $pass, SQL_CUR_USE_ODBC );
该数据库的排序规则是Slovak_CI_AI。如果我将我的 PHP 标头设置为 utf-8,输出数据看起来很乱,编码错误。
如果我将“Slovak_CI_AI”作为字符集添加到我的 PHP 标头,数据显示正常,但这可能是不行的,因为我需要在 WordPress 中处理这些数据,如果它们包含特殊/则无法处理它们非英文字符(这些字符串在 WP 看来是损坏的)。
我用 mb_convert_encoding、iconv 或 utf8_decode 尝试了许多转换,但没有成功。 WordPress 使用 utf-8。
我找不到任何解决方案。
更新:我尝试将CHARSET=UTF8 添加到我的 odbc 连接字符串中,但没有成功。我还发现数据库中文本的字符集是 cp1250。我尝试将 cp1250 设置为我的 PHP 标头的字符集,输出很好,但是一旦遇到特殊字符,WordPress 仍然会失败。我尝试使用 iconv 将这些字符串从 cp1250 转换为 utf-8,但也没有运气 - 字符串的输出编码错误,WordPress 也失败了。
【问题讨论】:
标签: php sql-server encoding utf-8