簡體   English   中英

EditText為德語變音符號返回增強的ISO-8859-1而不是UTF-8編碼?

[英]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.

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