我在我的某個網站上遇到了與Cookie相關的編碼問題。如何用ASCII表示急性口音?
用戶輸入查詢時Usuário
,其中有重音的,而這被放在一個cookie。針對Cookie響應的原始HEX是(對於Usuário
字符串):
55 73 75 C3 A1 72 69 6F
當我看到它在瀏覽器中,它看起來像這樣:
...這是真的亂。我需要解決這個問題。
然後我去這個網站:http://www.rapidtables.com/convert/number/hex-to-ascii.htm和轉換的十六進制值,看看它會是什麼樣子。而我得到了相同的輸出:
權。這意味着HEX代碼是錯誤的。然後我試圖將Usuário
轉換爲ASCII以查看它應該如何。我用這個網站:http://www.asciitohex.com/,這是結果:
對於我驚訝的是,HEX正是被顯示出來凌亂之一。爲什麼???
,如何表示ASCII Usuário
這樣我就可以把它放在一個cookie?我應該手動編碼嗎? PS:我使用ASP.NET,以防萬一它很重要。
ASCII不支持重音字符。您可以嘗試一些本地字符集(如cp850),但最好將所有環境設置爲UTF8,並強制客戶端的瀏覽器爲UTF8以及正確的元標記和標題 – SztupY 2015-03-24 23:46:26
請注意,您發佈的十六進制表示形式爲utf8而不是ascii。 – SztupY 2015-03-24 23:47:19
謝謝@SztupY,但你怎麼知道它是UTF-8? – 2015-03-24 23:50:50