簡體   English   中英

克服 PHP、SoapServer、UTF-8 和非英文字符的編碼問題?

[英]Overcome Encoding Problems with PHP, SoapServer, UTF-8, and non English Characters?

我在讓 PHP 與 SoapServer + UTF-8 配合使用時遇到問題。 任何時候任何人發送帶有非英語字符(即有趣的引號、重音字符等)的 Soap 請求時,SoapServer 都會拋出一個異常,說“錯誤的請求”。 我試過用 utf8_decode 解碼請求,甚至 HTML 特殊字符對文本進行編碼。 沒有什么對我有用。

我正在尋找正確方向的點,因為我現在迷路了。

確保SoapServerSoapClient都使用 UTF-8 編碼初始化:

$client = new SoapClient("some.wsdl", array('encoding'=>'UTF-8'));
$server = new SoapServer("some.wsdl", array('encoding'=>'UTF-8'));

使用“有趣的引號、重音字符等”處理請求的 XML。 證實?

一個明顯的下一步將是驗證您將收到該請求實際上編碼為UTF-8。 像 WireShark 這樣的網絡嗅探器(或者甚至只是一些簡單的舊 telnet 客戶端的工作也可以工作)可以讓您檢查傳遞給服務器的確切數據。 仔細查看並驗證它實際上是有效的 UTF-8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM