如何解决通过php-odbc连接时如何解决编码?
通过odbc_connect
中的PHP
连接MS Access数据库,如下所示:
$conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=mydatabase.mdb;Client_CSet=UTF-8;Server_CSet=UTF-8","","");
执行如下查询:
odbc_exec($conn,"INSERT INTO mytable (id,name) VALUES ('1','Звезда')");
但是,MS Access的俄语字母显示如下:
---------------------
id | name
---------------------
1 | Звезда
PHP文件采用UTF-8编码。因此,“Звезда”一词具有UTF-8表示形式。 非Unicode程序的MS Windows系统区域设置是Windows-1251。
通过odbc连接时如何修复编码?
解决方法
PHP-ODBC 不是 Unicode 驱动程序。所以 PHP 将连接视为仅 ASCII。您无法通过 PHP-ODBC 将 Unicode 字符发送到数据库。
唯一的解决方法是在 Windows 10 区域设置中打开选项“使用 Unicode UTF-8 进行全球语言支持”(注意:此实验性功能不是在 Windows 10 之前可用)。在这种情况下,Windows 10 对非 Unicode 程序使用宽字符串 API。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。