为什么我有࿽࿽;用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
}

我几乎可以保证这是一个编码问题

  • 切勿使用新字符串(字节[])
  • (始终传递字符集)
  • 切勿使用新的InputStreamReader(inputStream)(始终传递字符集)
  • 切勿使用
    String.getBytes()
    (始终传递字符集)
  • 确保编辑器(如记事本)正在使用与写入文件相同的编码进行读取

  • 如果没有显式传递字符集,将选择默认值。在java中,这对于UNIX/Windows是不同的(除非您显式地设置
    file.encoding
    系统属性)。

    我认为这是一个字节顺序标记(BOM),它可能是一个,是在文件编写过程中创建的。展示你的代码。在问:如果你反对投票,我能问一个原因吗?建设性的批评会改善我的问题,而不是减少缺点。@user5581557
    string.getBytes()
    =>在其中指定编码,并使用相同的编码读回文件。