如何解碼android中的utf-8字符串?我嘗試用這個命令的輸出輸入它的相同,但是:字符串解碼utf-8
URLDecoder.decode("hello&//à", "UTF-8");
new String("hello&//à", "UTF-8");
EntityUtils.toString("hello&//à", "utf-8");
如何解碼android中的utf-8字符串?我嘗試用這個命令的輸出輸入它的相同,但是:字符串解碼utf-8
URLDecoder.decode("hello&//à", "UTF-8");
new String("hello&//à", "UTF-8");
EntityUtils.toString("hello&//à", "utf-8");
一個字符串不需要編碼。它只是一串Unicode字符。
您需要編碼當您想要將字符串轉換爲一個字節序列。您選擇的字符集(UTF-8,cp1255等)決定字符 - >字節映射。請注意,字符不一定會翻譯爲單個字節。在大多數字符集中,大多數Unicode字符都被轉換爲至少兩個字節。 String的
編碼通過如下進行:
String s1 = "some text";
byte[] bytes = s1.getBytes("UTF-8"); // Charset to encode into
,當你有個字節的а序列,然後你把他們變成一個字符串你需要解碼。當你需要指定的時候,還需要指定這些字節最初編碼的字符集(否則你最終會得到精確的文本)。
解碼:
String s2 = new String(bytes, "UTF-8"); // Charset with which bytes were encoded
如果你想了解這更好,一個偉大的文字是 「The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)」
試着看一下decode string encoded in utf-8 format in android,但它並不像你的字符串與什麼特別編碼。你認爲輸出應該是什麼?
的核心功能是getBytes(String charset)
和new String(byte[] data)
。你可以使用這些函數來做UTF-8解碼。
UTF-8解碼實際上是一個字符串到字符串的轉換,中間緩衝區是一個字節數組。由於目標是UTF-8字符串,所以對於new String()
的唯一參數是字節數組,其中呼叫是等於new String(bytes, "UTF-8")
然後,鍵是用於輸入的編碼串中的參數來獲取內部字節數組,你應該事先知道。如果你不這樣做,猜測最可能的,「ISO-8859-1」對英國用戶來說是一個很好的猜測。
解碼句話應該是
String decoded = new String(encoded.getBytes("ISO-8859-1"));
該字符串不是在特定的編碼都沒有。這是什麼,你試圖解決的問題? 「解碼」是什麼意思?它是什麼編碼,你覺得呢? – BalusC 2011-05-09 22:34:10