Если у вас есть String
, вы можете сделать это:
String s = "test";
try {
s.getBytes("UTF-8");
} catch(UnsupportedEncodingException uee) {
uee.printStackTrace();
}
Если у вас «сломанный» String
, вы сделали что-то не так, преобразование String
в String
в другой кодировке определенно не подходит! Вы можете преобразовать String
в byte[]
и наоборот (с учетом кодировки). В Java String
с AFAIK кодируются UTF-16
, но это детали реализации.
Скажем, у вас есть InputStream
, вы можете прочитать в byte[]
и затем преобразовать его в String
, используя
byte[] bs = ...;
String s;
try {
s = new String(bs, encoding);
} catch(UnsupportedEncodingException uee) {
uee.printStackTrace();
}
или даже лучше (благодаря Эриксону) используйте InputStreamReader
вот так:
InputStreamReader isr;
try {
isr = new InputStreamReader(inputStream, encoding);
} catch(UnsupportedEncodingException uee) {
uee.printStackTrace();
}