1

该站点在一台服务器上运行,而数据库在另一台服务器上运行。当我在站点上输入文本以非英文字母提交给 DB 时,它会保存并呈现正确的。例如,如果我输入“ Привет Всем ”,我将在显示时在网站上看到相同的文本。

所有 MySQL 排序规则作为表作为字段都是 utf8_general_ci 页面上的元内容编码也是 utf-8,就像在 phpMyAdmin 上一样在现场

虽然如果我使用 phpMyAdmin 访问数据库,我会看到 КонÑÑ,наÑ,ин ПаР如果我将其更改为 Привет Всем 那么在网站上我会看到 ?????????? ???

在我们在 2 台装有 Windows 的不同服务器上进行的本地测试中,它并没有像这样工作。但是在部署到centOS 在线服务器后,它就变成了这样。

看起来它将文本双重编码为​​ UTF-8。我找不到它在哪里。

Zend_Soap_Client:: 或 SoapServer:: 或 MySQL 编码。

我拒绝了 Mysql 的想法,因为我认为如果它是 MySQl,那么它保存错误,然后当它提取时它应该发送错误的数据。

4

1 回答 1

0

也许您应该尝试配置 Zend_Soap_Client 或 SoapServer 以使用utf8?在 Zend_Soap_Client 的情况下,可以这样完成:

$client = new Zend_Soap_Client("http://my.site/my.wsdl", array('encoding' => 'UTF-8'));
于 2011-03-01T14:03:14.727 回答