Java: в консоли тайский текст печатается как какой-то странный символ
Когда я печатаю тайский символ в консоли, он показывает какой-то странный символ.
public static void main(String[] args) throws Exception{
byte[] bytes = "ฝ่ายขาย".getBytes("TIS-620");
String str = new String(bytes);
System.out.println(str);
}
Это печать ¢
1 ответ
Предполагая, что вы используете eclipse в Windows, чтобы включить UTF-8 в консоли (учитывая, что ваша IDE может использовать кодировку UTF-8 Windows -> Preferences -> General -> Workspace -> Test File Encoding = UTF-8
):
- Идти к
Windows -> Preferences -> Java -> Installed JREs
выберите JRE и Edit. добавлять-Dfile.encoding=UTF-8
к аргументам виртуальной машины по умолчанию (в качестве альтернативы вы можете отредактировать свой eclipse.ini и добавить этот аргумент, но он не работает для меня)
- Выберите поддерживающий шрифт консоли UTF-8:
Windows -> Preferences -> General -> Appearence -> Debug -> Console Font
(выберите Arial, Calibri и т. д.)
- Удалите явную кодировку "TIS-620" из вашего метода, как вам нужно в кодированной форме UTF-8
Код:
public static void main(String[] args) throws Exception {
byte[] bytes = "ฝ่ายขาย".getBytes();
String str = new String(bytes);
System.out.println(str);
}
Что, как указано в комментариях, простое String print
System.out.println("ฝ่ายขาย");
Выход:
ฝ่าย ขาย