Shift_JIS、CP932、MS932、Windows-31J区别
用java写csv文件的时候,用Shift-JIS编码的时候,
有些符号变成了负号。
outputStream = new DataOutputStream(new FileOutputStream(file));
bw = new BufferedWriter(new OutputStreamWriter(outputStream,"Shift-JIS"));
for (int i = 0; i < csvList.size(); i++) {
bw.write(csvList.get(i));
bw.newLine();
}
调查之后发现
Windows 标准字符集不是Shift_JIS,而是Windows-31J
Shift_JIS是日文的一种字符集,Microsoft的MS-DOS采用Shift_JIS。
把Shift_JIS改成Windows-31J或者MS932之后就表示正常了。
outputStream = new DataOutputStream(new FileOutputStream(file));
bw = new BufferedWriter(new OutputStreamWriter(outputStream,"Windows-31J"));
for (int i = 0; i < csvList.size(); i++) {
bw.write(csvList.get(i));
bw.newLine();
}
参照:
http://una.soragoto.net/topics/13.html
https://www.iteye.com/blog/amur-1294245