私は次のように私はバイトにデコードされた文字列cityName
あります変換バイトの文字列、および再び
byte[] cityBytes = cityName.getBytes("UTF-8");
を...とどこかのバイトを保存。これらのバイトを取得するとき、どうやってそれらをデコードして文字列にすることができますか?
私は次のように私はバイトにデコードされた文字列cityName
あります変換バイトの文字列、および再び
byte[] cityBytes = cityName.getBytes("UTF-8");
を...とどこかのバイトを保存。これらのバイトを取得するとき、どうやってそれらをデコードして文字列にすることができますか?
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");
}
String classはone that takes an array of bytes and a String representation of a charsetとanother that takes a Charset objectを含むバイトの配列を受け入れるいくつかのコンストラクタを有します。また、文字列がバイト配列のほんの一部である場合、Stringのオフセットと長さを引数として取るコンストラクタもあります。このよう
:
String cityName = new String(cityByte,"UTF-8");
String s = new String(cityByte, "UTF-8");
これを試してみてください:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
String(byte[] bytes, String charsetName)
あなたは 'Charset.forName( "UTF-8")を使用する必要はありません;'ジャスト「UTF-8」を使用すると正常に動作します。 – Jon
どちらも機能します。 –
ただ、普通の 'String'を使う方がいいですね。しかしそれはあなた次第です。 – Jon