Отображение строки в кодировке UTF16-LE в textview для Android - PullRequest
1 голос
/ 07 февраля 2012

У меня есть строка в кодировке UTF-16LE, пришедшая с сервера.Я хотел бы напечатать эту строку в Textview моей деятельности.Однако строка печатается с пробелами между ними.Таким образом, «Hello» печатается как «H ello» и выглядит не очень хорошо на моем экране.

Любая помощь приветствуется.

1 Ответ

4 голосов
/ 07 февраля 2012

Предполагается, что у вас есть поток (или массив byte s), содержащий строку в кодировке UTF-16LE.

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 e l l o».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...