在Android的textview中显示UTF16-LE编码的字符串

时间:2012-02-07 02:59:46

标签: android textview

我有一个来自服务器的UTF-16LE编码字符串。我想在我的活动的Textview中打印该字符串。但是,字符串打印时在它们之间有空格。因此,“Hello”打印为“H e l l o”,并且在我的屏幕中看起来并不那么好。

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:4)

假设您有一个包含UTF-16LE编码字符串的流(或byte s数组)。

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.

注意:如果将Crap这样的字符串转换为ICS中的TextView,它将为您删除垃圾而不打印" H ell o"。