为什么我有;用Java字符串?
我有一个字符串,经过一个漫长的过程(为什么我有;用Java字符串?,java,string,encoding,decode,Java,String,Encoding,Decode,我有一个字符串,经过一个漫长的过程(文件写入/读取),它是解码/编码/加密的 解码后,“明文”字符串的开头有两个奇怪的字符:�� 这是什么?为什么在那里?如何摆脱它 谢谢 编辑: 以下是我编写文件的方式: try { FileOutputStream out = new FileOutputStream(filePath); out.write(string.getBytes()); out.close(); } catch (Exception e) { //handl
文件写入/读取
),它是解码/编码/加密的
解码后,“明文”字符串的开头有两个奇怪的字符:��
这是什么?为什么在那里?如何摆脱它
谢谢
编辑:
以下是我编写文件的方式:
try {
FileOutputStream out = new FileOutputStream(filePath);
out.write(string.getBytes());
out.close();
} catch (Exception e) {
//handle exception
}
我几乎可以保证这是一个编码问题
切勿使用新字符串(字节[])
(始终传递字符集)
String.getBytes()
(始终传递字符集)如果没有显式传递字符集,将选择默认值。在java中,这对于UNIX/Windows是不同的(除非您显式地设置
file.encoding
系统属性)。我认为这是一个字节顺序标记(BOM),它可能是一个,是在文件编写过程中创建的。展示你的代码。在问:如果你反对投票,我能问一个原因吗?建设性的批评会改善我的问题,而不是减少缺点。@user5581557string.getBytes()
=>在其中指定编码,并使用相同的编码读回文件。