我正在抓取一些网站,其中一些网站包含非拉丁字符和“
等特殊字符作为引号,而不是"
和’
作为撇号而非{{1} }。
这是真正的曲线球......
我将相关文本打印到控制台。当我在IDE(Netbeans)中运行它时,一切都编码良好。但是,当我在计算机上运行时,'
打印为:“I Need Your Help”
...
在有人说我需要将ΓÇ£I Need Your HelpΓÇ¥
环境变量设置为JAVA_TOOL_OPTIONS
之前,请告诉我我已经这样做了,这仍然是一个问题。此外,我不应该指定缓冲读卡器的编码为-Dfile.encoding=UTF8
覆盖它吗?
以下是一些信息:
"UTF-8"
设置,但似乎没有差)。这是我的代码。让我知道您是否需要更多信息。谢谢!
JAVA_TOOL_OPTIONS
答案 0 :(得分:2)
这里有两种可能性。正如 user1291492 所说,可能是您正确读取了内容,但终端使用的编码与IDE使用的编码不同。
另一种可能性是源数据不是UTF-8。如果你正在抓取一个网站,那么你应该注意网站通过Content-Type
标题告诉你它用于编码的内容,而不是假设它总是UTF-8。
答案 1 :(得分:1)
IDE的输出“窗口”可能具有理解和打印utf-8字符的能力。控制台可能不是那么先进
答案 2 :(得分:-1)
try {
reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String line="";
String s ="";
try
{
line = reader.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
while (line != null)
{
s = s + line;
s =s+"\n";
try
{
line = reader.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
}
tv.setText(""+s);
}