我有一个来自服务器的UTF-16LE编码字符串。我想在我的活动的Textview中打印该字符串。但是,字符串打印时在它们之间有空格。因此,“Hello”打印为“H e l l o”,并且在我的屏幕中看起来并不那么好。
感谢任何帮助。
由于
答案 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"。