[英]EditText returns enhanced ISO-8859-1 instead UTF-8 encoding for german umlauts?
我不僅僅是困惑。 我確實有一些EditText,它顯然返回ISO-8859-1甚至混合8859-1 + UTF8字符串。
直到現在我的理解是,Android完全是UTF-8,所以這甚至都不會發生。
示例:在EditText中輸入“wüste”。 字符串為十六進制返回此字節代碼:57 fc 73 74 65,我的期望值是:57 c3bc 73 74 65
輸入“wüsteテスト”返回57 fc 73 74 65 20 30c6 30b9 30c8,現在甚至是擴展的8859-1和UTF-8的混合。
這是預期和想要的行為嗎? 我可以在某處更改嗎? 我在使用JSON向服務器發送數據時意識到了這種行為,並且由於非法的UTF-8字符而導致了這種行為。
此致,奧利弗
Java(以及Android)字符串不是UTF-8,而是UTF-16 。 顯示的字節是Unicode代碼點。
您需要將字符串轉換為UTF-8才能發送它(直接或通過您可能使用的任何JSON庫)。 這可以通過在字符串上調用getBytes("UTF8")
來獲得一個包含所需編碼字符串的字節數組來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.