【发布时间】:2011-01-05 19:15:10
【问题描述】:
我有一个 PHP SOAP 服务器(使用 nuSOAP),我使用基于 C# 的应用程序。
当 C# 应用程序提交请求时,字符串是 UTF-8 编码的。我使用网络嗅探器验证了字节序列是有效的 UTF-8。但是,当 PHP 获取然后我将它们发布到数据库或通过电子邮件发送它们时,它似乎像标准 ASCII 一样打印,UTF 编码字节被视为字符。
对于从 SOAP 服务器接收 UTF-8 的 C# 应用程序,我遇到了同样的问题。 .NET 将每个字节解释为 CHAR 而不是 BYTE。我必须编写一个小函数,将每个 CHAR 转换为 BYTE,然后将其转换为 UTF-8 字符串,并且运行良好。
问题是,我需要在 PHP 服务器端做什么才能将传入的 SOAP 请求正确处理为 MySQL 的 UTF-8 和 mail() 函数?我尝试过utf8_encode() 和utf8_decode(),但那些更糟的字符串。
【问题讨论】:
-
这并不奇怪(您遇到了互操作性问题)。见72.249.21.88/nonintersecting/2006/11/15/the-s-stands-for-simple。它写得很幽默,但很有趣,因为它是真实的。
-
实际上,当我在努力让这两者发挥作用时,我实际上是这样读的。更糟糕的是,我必须让一个有效的公钥/私人系统与服务器一起进行签名和客户端验证。那是一个真正的痛苦。