Как преобразовать строку в байт и обратно - PullRequest
6 голосов
/ 13 сентября 2011

Для преобразования строки я преобразую ее в байт следующим образом: byte[] nameByteArray = cityName.getBytes();

Чтобы преобразовать обратно, я сделал: String retrievedString = new String(nameByteArray);, что явно не работает. Как бы я преобразовал его обратно?

Ответы [ 2 ]

10 голосов
/ 13 сентября 2011

Какие символы присутствуют в вашем оригинальном названии города? Попробуйте версию UTF-8 так:

byte[] nameByteArray = cityName.getBytes("UTF-8");
String retrievedString = new String(nameByteArray, "UTF-8");
5 голосов
/ 13 сентября 2011

, что явно не работает.

На самом деле, именно так вы и делаете.Единственное, что может пойти не так, это то, что вы неявно используете кодировку платформы по умолчанию, которая может отличаться в разных системах и может не отображать все символы в строке.

Решение заключается в явном использованиикодировка, которая может представлять все символы, такие как UTF-8:

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

String retrievedString = new String(nameByteArray, "UTF-8");
...