簡體   English   中英

中文或日語字符串比較

[英]Chinese or Japanese character string comparison

我有一個表單,用戶輸入中文/日文字符然后我將其與聲明的值進行比較。 問題是即使輸入和聲明的值相同也不相等。

諸如variableA = "官話"類的硬編碼變量不等於表單輸入文本。 打印時,顯示"官話"

即使他們的長度不平等! new String("官話").length(); 不等於
formInputtedCharacter.length(); ,打印時的輸入是“官話”(已經是UTF-8)

怎么會這樣?

最可能的原因(如果您確定表單數據處理正確)是Java編譯器在處理您的文字時使用了錯誤的編碼。 確保它使用與編輯源代碼時使用的編碼相同的編碼。

Java字符串使用UTF-16表示, UTF-16是一個24字節長的映射到Unicode字符集中的字符。

對於官話或字符編碼問題,似乎有兩個不同的unicode字符。 也許一個中國人和一個日本人看起來相同或類似? 如果有兩個不同的unicode字符,將有兩個不同的字節表示形式。 因此它們在Java中並不相似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM