我正在使用DomDocument和PHP生成一个XML文件,需要处理亚洲字符。我使用pdo_mssql驱动程序从MSSQL2008服务器中拉取数据,并在XML属性值上应用utf8_encode()。只要没有特殊字符,一切都正常运作。
服务器是MS SQL Server 2008 SP3
数据库、表和列的排序规则都是SQL_Latin1_General_CP1_CI_AS
我正在使用PHP 5.2.17
这是我的PDO对象:
$pdo = new PDO("mssql:host=MyServer,1433;dbname=MyDatabase", user123, password123);
我的查询是一个基本的SELECT。
我知道将特殊字符存储到SQL_Latin1_General_CP1_CI_AS列中并不好,但最好能够在不更改它的情况下使其正常工作,因为其他非PHP程序已经使用该列并且可以正常工作。在SQL Server Management Studio中,我可以正确地看到亚洲字符。
考虑到上述所有细节,我应该如何处理数据?
utf8_encode()
吗?根据手册:将ISO-8859-1字符串编码为UTF-8
。 - Pierre-OlivierLATIN1
中编码亚洲字符。LATIN1
只用于编码欧洲字符... - Pierre-Olivier