[英]Chinese or Japanese character string comparison
我有一個表單,用戶輸入中文/日文字符然后我將其與聲明的值進行比較。 問題是即使輸入和聲明的值相同也不相等。
諸如variableA = "官話"
類的硬編碼變量不等於表單輸入文本。 打印時,顯示"官話"
。
即使他們的長度不平等! new String("官話").length();
不等於
formInputtedCharacter.length();
,打印時的輸入是“官話”(已經是UTF-8)
怎么會這樣?
最可能的原因(如果您確定表單數據處理正確)是Java編譯器在處理您的文字時使用了錯誤的編碼。 確保它使用與編輯源代碼時使用的編碼相同的編碼。
Java字符串使用UTF-16
表示, UTF-16
是一個2
或4
字節長的映射到Unicode
字符集中的字符。
對於官話
或字符編碼問題,似乎有兩個不同的unicode字符。 也許一個中國人和一個日本人看起來相同或類似? 如果有兩個不同的unicode字符,將有兩個不同的字節表示形式。 因此它們在Java中並不相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.