此类将定义数量的字符打印到Eclipse控制台。但对于特定的字符,它显示16384字节后的unicode替换字符。
我想知道为什么会这样?对于ASCII字符,它不会发生,但对于其他unicode字符也不会发生。
我正在使用Eclipse Oxygen.1版本(4.7.1)和Java SE 8 [1.8]。
package main;
public class Main {
// 2 REPLACEMENT CHARACTERS (�) after 16.384 bytes
// http://www.fileformat.info/info/unicode/char/b7/index.htm
// Hex: 0xC2 0xB7
static final String SIGN1 = "·";
// No replacement characters
// http://www.fileformat.info/info/unicode/char/25CF/index.htm
// Hex: 0xE2 0x97 0x8F
static final String SIGN2 = "●";
public static void main(String[] args) {
String out ="";
for (int i = 1; i <= 8600; i++) {
out += SIGN1;
// issue only occurs when \n is added
if (i % 100 == 0) {
out += "\n";
}
}
System.out.println(out);
}
}