当前位置: 首页 > 面试题库 >

为什么不以指定的UTF-8格式读取此BufferedReader?

蒋寒
2023-03-14
问题内容

我刮了几个网站,其中一些包含非拉丁字符和特殊字符,如行情,而不是"用于撇号,而不是'

这是真正的曲线球…

我已将相关文本打印到控制台。当我在IDE(Netbeans)中运行时,一切都可以正常编码。但是,当我在计算机上运行它时,它的“I Need Your Help”打印输出为:ΓÇ£I Need Your HelpΓÇ¥

在有人说之前,我需要设置我的JAVA_TOOL_OPTIONS环境变量以-Dfile.encoding=UTF8让我说我已经做到了,但这仍然是一个问题。此外,我是否还应该为缓冲的阅读器指定编码,以使其"UTF-8"覆盖呢?

这是一些信息:

  • 我正在使用目标平台为1.7的JDK 7
  • 我在Windows 7计算机上运行的所有计算机都在运行,并且遇到相同的问题(有些没有JAVA_TOOL_OPTIONS设置,但这似乎没有任何区别)。
  • 我认为它使用的默认编码是Cp1252 …

这是我的代码。让我知道您是否需要更多信息。谢谢!

/**
 * Using the given url, this method creates and returns the buffered reader for that url
 *
 * @param urlString
 * @return
 * @throws MalformedURLException
 * @throws IOException
 */
public synchronized static BufferedReader getBufferedReader(String urlString) throws MalformedURLException, IOException {
  URL url = new URL(urlString);
  InputStream is = url.openStream();
  BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  return br;
}

问题答案:

这里有两种可能性。正如 user1291492 所说,可能是您正确读取了内容,但是终端使用的编码与IDE使用的编码不同。

另一种可能性是源数据不在UTF-8中。如果要抓取网站,则应注意网站通过Content-Type标头告知您用于编码的内容,而不是假设它始终为UTF-8。



 类似资料:
  • 问题内容: 我想将jsoup解析为utf -8,但我不能。我尝试了我所知道的一切,然后在Google上进行了搜索。 我的目标是: 但是 不是。 请帮忙 问题答案: 淘汰 你好世界Öçasasa

  • 问题内容: 我有一个问题,当XML文件中存在UTF-8字符时,我的DOM解析器无法加载文件现在,我知道我必须给他指令以读取utf-8,但我不知道如何放置它在我的代码中,它是: 我知道有方法setencoding(),但我不知道将其放在代码中的位置… 问题答案: 试试这个。 为我工作

  • 问题内容: 我正在尝试将Shift_JIS格式的文件转换为UTF-8格式。为此,下面是我的方法: 读取Shift_JIS文件 每行的getBytes并将其转换为UTF-8 创建新文件并将UTF-8转换后的值写入该文件 问题是在第2步中没有发生转换。我正在使用下面的代码将Shift_JIS转换为UTF-8: 请让我知道是否需要其他信息。 我有以下两个 问题 : 1.还有其他更好的方法(步骤)来执行此

  • 问题内容: 我一直将此指令视为移交给我的众多CSS文件的第一行: 它是做什么的,这是必要的规则吗? 另外,如果我在“ head”元素中包含此meta标签,是否可以消除在CSS文件中也包含它的需要? 问题答案: 它告诉浏览器以UTF-8格式读取css文件。如果您的CSS不仅包含ASCII字符,而且包含Unicode字符,这将非常方便。 在meta标签中使用它很好,但仅适用于包含该meta标签的页面。

  • 问题内容: 我正在尝试读取文本文件,我正在使用fileImputStream,并将所有行读取到单个String中,然后将其输出到控制台(System.out) 当我尝试读取humanSerf.txt时,它在consol中为我提供了这一点: 在文本文件中,它说: 如何使怪异的文字消失? 这是我正在使用的代码,请帮助 如何使怪异的文字消失?ps,这是在mac textedditor中完成的 问题答案:

  • 问题内容: 将您的源代码保存为UTF-8格式有多重要? Windows上的Eclipse默认使用CP1252字符编码。CP1251格式意味着可以保存非UTF-8字符,并且如果您从Word文档中复制并粘贴以进行注释,我已经看到这种情况。 我问的原因是因为出于习惯,我将Maven编码设置为UTF-8格式,最近它捕获了一些不可映射的错误。 (更新)请添加执行此操作的任何原因以及为什么,应该知道一些常见的