2011-12-04 14 views
2

私は次のように私はバイトにデコードされた文字列cityNameあります変換バイトの文字列、および再び

byte[] cityBytes = cityName.getBytes("UTF-8");

を...とどこかのバイトを保存。これらのバイトを取得するとき、どうやってそれらをデコードして文字列にすることができますか?

答えて

6

String(byte[], Charset)またはString(byte[], String)コンストラクタを使用します。

byte[] rawBytes = /* whatevs */ 

try 
{ 
    String decoded = new String(rawBytes, Charset.forName("UTF-8")); 
    // or 
    String decoded = new String(rawBytes, "UTF-8"); 
    // best, if you're using Java 7 (thanks to @ColinD): 
    String decoded = new String(rawBytes, StandardCharsets.UTF_8); 
} 
catch (UnsupportedEncodingException e) 
{ 
    // see http://stackoverflow.com/a/6030187/139010 
    throw new AssertionError("UTF-8 not supported"); 
} 
+0

あなたは 'Charset.forName( "UTF-8")を使用する必要はありません;'ジャスト「UTF-8」を使用すると正常に動作します。 – Jon

+0

どちらも機能します。 –

+1

ただ、普通の 'String'を使う方がいいですね。しかしそれはあなた次第です。 – Jon

0

String cityName = new String(cityByte,"UTF-8"); 
0

String s = new String(cityByte, "UTF-8");

関連する問題