我試圖從客戶端JavaScript發送一個字符串到後端PHP腳本。該字符串包含特殊的引號,如’
和「
。JavaScript到PHP - POST編碼問題
當我在Chrome瀏覽器中查看控制檯時,可以看到它們是按照POST標題原樣發送的。在PHP方面,我立即json_encode()
$_POST
數組,並將其發送回來以查看其收集的內容。特殊字符現在看起來像這樣\u2019
。 這是測試請注意我通常會清理所有發佈數據。
我想使用UTF-8,但我不知道我錯過了什麼。我的HTML包括:
<meta charset="utf-8">
我的PHP服務器已將UTF-8設置爲其默認字符集。
如果我開始將這樣的數據保存到數據庫,我開始以這樣的字符串結尾:âÂÂ
對於’
。但是這不是數據庫問題在進入數據庫之前,這些字符已經很糟糕。 MySQL純粹強調它們。
任何想法?
更新
我發現,如果我返回的字符串返回的javascript不使用json_encode()
那麼它與特殊引號(’
和「
)仍處於原始格式。
''而不是meta標籤的內容? – Jon 2013-03-08 16:32:19
這只是正確的輸出,UTF-8字符應該像JSON中的'\ uXXXX'一樣編碼。 @Jon:只有在HTML 5語法中才是如此。順便說一句,不要清理你的POST數據,在輸出/使用數據時使用正確的轉義/編碼。 – 2013-03-08 16:32:26
它沒有被指定,所以我假設XHTML或HTML 4.x ^^但是@MarcelKorpel正確,並且在'json_encode'之後是正確的返回。 – Jon 2013-03-08 16:35:25