我有一個來自服務器的UTF-16LE編碼字符串。我想在我的活動的Textview中打印該字符串。但是,字符串會在它們之間打印空格。所以,「你好」打印爲「H l l o o」,在我的屏幕中看起來並不好看。在Android的textview中顯示UTF16-LE編碼的字符串
任何幫助表示讚賞。
由於
我有一個來自服務器的UTF-16LE編碼字符串。我想在我的活動的Textview中打印該字符串。但是,字符串會在它們之間打印空格。所以,「你好」打印爲「H l l o o」,在我的屏幕中看起來並不好看。在Android的textview中顯示UTF16-LE編碼的字符串
任何幫助表示讚賞。
由於
假設你有含有UTF-16LE編碼的字符串流(或byte
列數組)。
String str0 = "Hello, I am a UTF-16LE encoded String";
byte[] utf16le = str.getBytes("UTF-16LE");
如果你不把這些轉換回&說明使用你會產生含大量的0字節的字符串的字符集(UTF-16LE是,很明顯,16位),在您的結果字符串。
String wrong = new String(utf16le); // This will produce crap with \0:s in it.
String correct = new String(utf16le, "UTF-16LE"); // This will be the actual string.
注:如果你傾倒垃圾字符串:就像這些成一個TextView在ICS它會刪除你的垃圾和不打印「HéL L o」的。
工作正常!謝謝一堆。 – Gentoo 2012-02-07 18:34:35
你是如何收到它的?只需將一個UTF-16LE字節流轉儲到字符串中就可以獲得您所看到的輸出。 – Jens 2012-02-07 09:01:26
是的,這就是我正在做的。我將如何轉換它? – Gentoo 2012-02-07 13:49:14