114百事通做网站是不是诈骗2020年百度搜索排名
当我们读取的文件是从远程机器上面读取的时候,需要注意一下编码问题。
情形是这样的:
远程机器是linux,而我本机的是windows。
linux默认编码utf-8,而windows是gbk。
上传一个文件到远程机器上,并且操作过远程机器上的文件,如拷贝,重写,新建一个文件,很可能导致本机上读取该文件的时候出现错误。
原来我们写代码是这样的:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile));
而没有管后面的编码问题。
造成读数据的时候会出现乱码问题。
现在需要这样读:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile),Charset.defaultCharset()));
Charset.defaultCharset()是获取服务器默认编码。这样读出来不管是在哪里都没问题。
不过由于日常开发我们是在eclipse下面开发的,通常我们会设成utf-8的编码,这样就导致
Charset.defaultCharset() = utf-8.
从而在windows下读取本地文件的时候会出现乱码。