【发布时间】:2018-07-17 17:24:00
【问题描述】:
通常我的程序应该将所有 CP1252 代码输出为字符:
System.out.println("actual file.encoding: "+System.getProperty("file.encoding")); // CP1252
for (int i = 0; i < 500; i++) {
System.out.println("Nr.: "+i+ " Symbol: "+(char)i");
}
但是输出是: (整个输出的sn-p!)
Nr.: 124 Symbol: |
Nr.: 125 Symbol: }
Nr.: 126 Symbol: ~
Nr.: 127 Symbol:
Nr.: 128 Symbol: ?
Nr.: 129 Symbol: ?
Nr.: 130 Symbol: ?
Nr.: 131 Symbol: ?
Nr.: 132 Symbol: ?
Nr.: 133 Symbol: ?
Nr.: 134 Symbol: ?
Nr.: 135 Symbol: ?
但在https://en.wikipedia.org/wiki/Windows-1252 中写到 134 是:†
为什么不显示 †?
【问题讨论】:
-
您错过了 Java 中的字符和字符串始终是 UTF-16/UCS-2。默认编码仅在从字节转换为字符串(或字符)时适用,反之亦然(未指定显式编码)。这不适用于这里。
标签: java char show dagger cp1252