2012-02-07 10 views
1

サーバーからのUTF-16LEエンコード文字列があります。その文字列を私の活動のTextviewに印刷したいと思います。ただし、文字列はそれらの間にスペースを入れて印刷されます。だから、 "こんにちは"は "H l l l o"と表示され、私の画面ではそれほど素晴らしいものではありません。Android用テキストビューにUTF16-LEエンコードされた文字列を表示します。

何か助けていただければ幸いです。あなたと仮定すると

おかげ

+0

どのように受信していますか?文字列にUTF-16LEバイトストリームをダンプするだけで、あなたが見ている種類の出力が得られます。 – Jens

+0

はい、それは私がやっていることです。どのように私はそれを変換するだろうか? – Gentoo

答えて

4

はUTF-16LEエンコードされた文字列を含むストリーム(またはbyteの配列を)持っています。

String str0 = "Hello, I am a UTF-16LE encoded String"; 
byte[] utf16le = str.getBytes("UTF-16LE"); 

あなたがあなたの結果のStringに(UTF-16LE 16ビット、明らかに、である)0バイトの多くを含む文字列を生成します使用される文字セットを記述し、これらのバック&を変換しない場合。

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. 

:あなたはがらくたの文字列をダンプする場合■ICSでのTextViewにこれらのように、それは「H E LがL 0」を印刷し、あなたのためにゴミを削除しないであろう。

+0

それはうまくいった!本当にありがとう。 – Gentoo