簡體   English   中英

PHP應用程序/ x-www-form-urlencoded錯誤地解碼了特殊字符

[英]PHP application/x-www-form-urlencoded decodes special character wrongly

遠程SMS服務(我不能影響)以Content-Type形式將文本消息發布到(Symfony2應用程序的PHP控制器)PHP,內容類型為:application / x-www-form-urlencoded

PHP無法正確解碼特殊字符。

一個tcpdump顯示(縮寫-僅顯示有問題的數據)

User-Agent: smsd (libwww-perl/5.805)
Content-Type: application/x-www-form-urlencoded
Content-Length: 123

data=ae+%E4+ue+%FC+oe+%F6+sz+%DF

原始數據為

ae ä ue ü oe ö sz ß

和PHP $ _POST保存(序列化)

;s:4:"data";s:19:"ae ###e ###### sz ##;

我想是造成麻煩的原因是缺少的charset = UTF-8。

如果有人對如何解決這個問題有任何想法,我將不勝感激。 謝謝

對於這個特定的問題,我現在自己使用iconv找到了解決方案。

$decoded = iconv( 'ISO-8859-1', 'UTF-8', urldecode( $encoded ) );

我認為PHP> = 5.4中用於urlencode / urldecode的標准字符集現在是UTF-8,盡管我沒有在這些功能的變更日志中找到任何特定內容。

暫無
暫無

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

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