我有一個字符串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的偏移量和長度作爲參數。
像這樣:
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
他們都工作。 –
只是說,使用普通的'字符串'看起來更好。但它取決於你。 – Jon