鑑於這種代碼在Java中:的Java字符/ INT轉換混亂
FileOutputStream os = new FileOutputStream("/tmp/test.dat");
os.write(0x14);
os.write(0xfe);
os.write(0xae);
os.write(String.valueOf((char) 0x14).getBytes("UTF-8"));
os.write(String.valueOf((char) 0xfe).getBytes("UTF-8"));
os.write(String.valueOf((char) 0xae).getBytes("UTF-8"));
os.write("\u0014".getBytes("UTF-8"));
os.write("\u00fe".getBytes("UTF-8"));
os.write("\u00ae".getBytes("UTF-8"));
os.close();
有人可以給我解釋爲什麼在TEST.DAT前3個字節是
14 fe ae
而從最後的輸出6 os.write()的是
14 c3 be c2
基本上,我想逐字輸出字節14 fe ae。我將這些值存儲爲一個字符串常量,並將這些常量的值寫入UTF-8文件,但輸出結果爲14 c3爲c2。在我理解Java中如何轉換這些字節序列方面顯然存在差距。
謝謝!