问题:我有一个包含特殊字符的字符串,我将其转换为字节,反之亦然。转换在 Windows 上正常工作,但在 linux 上,特殊字符未正确转换。Linux 上的默认字符集是 UTF-8,如 Charset 所示。 defaultCharset.getdisplayName()
但是,如果我使用选项 -Dfile.encoding=ISO-8859-1 在 linux 上运行,它可以正常工作..
如何使用 UTF-8 默认字符集而不是在 unix 环境中设置 -D 选项使其工作。
编辑:我使用 jdk1.6.13
编辑:代码片段适用于 cs = "ISO-8859-1"; 或 cs="UTF-8"; 在赢但不在linux中
String x = "½";
System.out.println(x);
byte[] ba = x.getBytes(Charset.forName(cs));
for (byte b : ba) {
System.out.println(b);
}
String y = new String(ba, Charset.forName(cs));
System.out.println(y);
〜问候daed