我在將utf-8字符串傳遞給javascript(ajax)時遇到了問題。目前我在PHP端使用rawurlencode
,在javascript端使用unescape
。在php和javascript之間傳遞utf-8字符串
問題在於拉丁語並且rawurlencode
不完全支持它。
有沒有其他選擇或更好的選擇?
我在將utf-8字符串傳遞給javascript(ajax)時遇到了問題。目前我在PHP端使用rawurlencode
,在javascript端使用unescape
。在php和javascript之間傳遞utf-8字符串
問題在於拉丁語並且rawurlencode
不完全支持它。
有沒有其他選擇或更好的選擇?
該解決方案在json_encode
功能。當我添加JSON_HEX_APOS|JSON_HEX_QUOT
時問題停止。
謝謝!
如果php正在做的編碼和js解碼whay不是簡單地不編碼在php和編碼在js以及?我估計不是一個真正的答案。在PHP
使用json_encode和接收響應爲JSON(jQuery是有幫助的) AJAX是在發送UTF-8在默認情況下,所以你只需要返回UTF-8
php的函數utf8_encode(數據)得到一個ISO -8859-1字符串作爲數據參數。
需要更多建議?告訴我你在哪裏得到從文本;)
我發現了mb_convert_encoding函數http://www.phpbuilder.com/manual/en/function.mb-convert-encoding.php,但我從來沒有用過它。我只是使用utf8處理所有數據,即使mysql的排序規則不同,它也可以正常工作。 – naugtur 2010-02-15 21:49:06
從經驗來看,JavaScript的escape()(螞蟻因而unescape())是不的Unicode(UTF-8)友好。改爲使用encodeURIComponent()和decodeURIComponent()。
無論如何,該文檔說:
的escape()函數不應該用於編碼的URI 。
你有沒有試過utf8_encode? – 2010-02-15 20:57:02
是的...同樣的結果... – Mission 2010-02-15 21:27:10