Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有数字字符引用的JSoup编码问题_Java_Character Encoding_Jsoup - Fatal编程技术网

Java 带有数字字符引用的JSoup编码问题

Java 带有数字字符引用的JSoup编码问题,java,character-encoding,jsoup,Java,Character Encoding,Jsoup,我们正在做以下工作: 使用指定的编码打开文件的读取器 读入每一行,将其解析为CSV 对于CSV数据中的某些列,将其传递给JSoup以清除HTML,如下所示: public String apply(@Nullable String input) { Document document = Jsoup.parse(input); return document.text(); } 这非常有效,除了在存在的情况下,例如 。似乎正在发生的事情是,由于我们必须在弄清楚编码之

我们正在做以下工作:

  • 使用指定的编码打开文件的读取器
  • 读入每一行,将其解析为CSV
  • 对于CSV数据中的某些列,将其传递给JSoup以清除HTML,如下所示:

    public String apply(@Nullable String input) {
        Document document = Jsoup.parse(input);
    
        return document.text();
    }
    
  • 这非常有效,除了在存在的情况下,例如
     。似乎正在发生的事情是,由于我们必须在弄清楚编码之后执行JSoup调用(以使CSV解析工作),当JSoup开始将硬编码字节转换为字符时,我们使用的字符集是错误的。字节160(0xa0)在windows-1252中是不间断的空格,但不是有效的Unicode字符,因此当JSoup用字节替换数字字符引用时,会给我们提供错误数据


    有办法解决这个问题吗?它需要为JSoup提供一个数字字符引用的“源代码编码”或类似的东西。

    text()之前尝试调用以下命令:


    有关更多输出设置,请参见。

    尝试在
    text()之前调用以下命令:


    有关更多输出设置,请参见。

    原来我很困惑-问题在于其他方面。不过,这听起来像是对原始问题的正确答案。关于API的一个问题-这实际上不是一个输出设置,而是一个输入编码的问题,对吗?结果我很困惑-问题是其他的。不过,这听起来像是对原始问题的正确答案。关于API的一个问题——这实际上不是一个输出设置,而是一个输入编码的问题,对吗?
    document.outputSettings().charset("windows-1252");