2011-01-20 31 views
5

我想檢查用戶提交的字符串是否與我的答案關鍵字中的字符串相同。有時這些詞涉及西班牙口音(如薩巴多語),並且這使得條件總是錯誤的。JavaScript/HTML/Unicode口音:á!=á

我有Firebug日誌$('#answer').val()它顯示爲sábado。 (á來自插入值á的按鈕,如果這很重要),而從答案鍵記錄答案顯示sábado(我如何將它寫入實際答案鍵中)。

我試着用正常的á替換了答案中的&aacute,但它仍然不起作用,並且導致Unicode鑽石問號。當我這樣做,並替換使用戶提交的按鈕的值時,該條件正常工作,但按鈕,用戶字符串和答案字符串都有奇怪的Unicode菱形問號。

我也嘗試在兩個地方使用á,這與使用á沒有什麼不同。我的HTML和Javascript都使用charset="utf-8"

我該如何解決這個問題?

+0

您能否給一些樣品中jsfiddle.net ? – 2011-01-20 03:31:24

+1

因此,在一種情況下,您似乎將`sá bado`與`sábado`進行比較,當然這是`false`。在另一種情況下,你正在比較`s bado`到`sábado`,這也是`false`。看起來像一個簡單的編碼問題......? – deceze 2011-01-20 03:33:06

回答

4

如果您持續使用UTF-8,有沒有必要,除了編碼語法HTML實體(即<>&和 - 中的屬性 - ")。

爲別的,使用正確的字符,你的問題應該消失 - 直到你遇到Unicode規範化問題,即'a\u0301''\u00E1'的區別...

0

問題是你沒有在兩個字符串中使用真正的UTF-8字符(輸入答案和關鍵字)。你不應該提供「一個插入值&aacute的按鈕;」 - 回覆:「如果那很重要」,它的確如此!

字符應該由鍵盤輸入系統添加。而你的比較字符串也應該只有utf-8個字符。它不應該是字符實體。

相關問題