最近在学习字符编码方面的知识,得知java中的char类型使用utf-16编码,固定2个字节,整数范围为0---65535,这个范围,包含了世界上绝大多数国家的文字。
故而,写了个小程序,将所有字符写入一个文件中
public class FileWriteTest {
public static void main(String[] args) {
try {
FileWriter fileWriter = new FileWriter("unicode.txt");
for (int i = 0; i < 65536; i++) {
fileWriter.write(i);
}
fileWriter.flush();
FileReader fileReader = new FileReader("unicode.txt");
int read;
while ((read = fileReader.read()) != -1) {
System.out.println("index=" + read + ", 对应字符:" + (char) read);
}
} catch (Exception e) {// 路径可能不存在
e.printStackTrace();
}
}
}
问题1, 为什么我用文本编辑器打开,发现有很多符合不显示、显示问号?
如下图
问题2: 我修改了,文件的编码方式,使用utf-16,也不显示字符,这是为什么?
有的字符就是空白,比如回车,tab,有的显示成文号,可能是你电脑上没有这个字符集吧。