Это мой код, оба из двух способов дают одинаковый результат.
String description = "test string with 音樂";
byte[] b = description.getBytes("US-ASCII");
//first way
char[] result = new char[b.length];
for ( int i = 0; i < b.length; i++ ) {
result[i] = (char)b[i];
}
System.out.println(new String(result)); //output - test string with ??
//second way
System.out.println(new String(b, "UTF-8")); //output - test string with ??
Я использую Eclipse и изменяет кодировку вывода в US-ASCII в разделе " Конфигурация запуска"
Можно ли получить его как строку кодировки US-ASCII?
Спасибо, спасибо!
Невозможно преобразовать китайские символы в US-ASCII, потому что они не содержатся в этом наборе символов.
US-ASCII знает только 128 различных символов, а некоторые из них - даже непечатаемые управляющие символы.
Невозможно преобразовать его в US-ASCII, но,
Если вы просто хотите использовать Unicode escaped string, вы можете использовать утилиту apache common lang,
import org.apache.commons.lang.StringEscapeUtils;
...
StringEscapeUtils.unescapeJava("test string with \u97F3\u6A02");
//gives result : test string with 音樂
StringEscapeUtils.escapeJava("test string with 音樂");
//gives result : test string with \u97F3\u6A02