从html java读取时是否保留特殊字符?

从html java读取时是否保留特殊字符?,java,html,unicode,jsoup,Java,Html,Unicode,Jsoup,我正在尝试读取html源文件,其中包含像äöü߀这样的德语字符 使用JSOUP读取 citAttr.nextElementSibling().text() 使用 unicodeEscaper.translate(citAttr.nextElementSibling().text()) org.apache.commons.lang3.text.translate.UnicodeScaper 问题是在阅读了charecters变成� private String getText(Part

我正在尝试读取html源文件,其中包含像äöü߀这样的德语字符

使用JSOUP读取

citAttr.nextElementSibling().text() 
使用

unicodeEscaper.translate(citAttr.nextElementSibling().text())
org.apache.commons.lang3.text.translate.UnicodeScaper

问题是在阅读了charecters变成�

private String getText(Part p) throws MessagingException, IOException {
    if (p.isMimeType("text/*")) {
        String s = (String) p.getContent();
        textIsHtml = p.isMimeType("text/html");
        return s;
    }
但是,在哪里读取编码类型为UTF-8的CSV以及上面的UnicodeScaper保存和检索字符就可以了

unicodeEscaper.translate(record.get(headerPosition.get(0)))
从html读取有什么问题??你尝试过StringUtilEscaper方法吗?charecters仍然会变成�

private String getText(Part p) throws MessagingException, IOException {
    if (p.isMimeType("text/*")) {
        String s = (String) p.getContent();
        textIsHtml = p.isMimeType("text/html");
        return s;
    }

这就是我如何阅读包含html内容的电子邮件

我今天刚刚回答了一个类似的问题。。。我想我可以键入我所知道的关于扩展字符集(外语字符)的内容,因为这是我编写的软件的主要方面之一

  • Java的内部
    字符串
    都使用
    16位字符
    (原语类型
    字符
    是一个16位原语值。名称
    UTF-8
    有点误导,因为它用于表示16位的“Unicode空间”(使用两个8位数字)。这意味着Java(和Java
    字符串的
    在表示整个Unicode外语字母表范围时没有问题。
  • JSoup,以及几乎所有用Java编写的HTML工具,在请求下载网站页面时,都会返回16位字符-作为Java
    字符串的
    -很好,没有任何问题!如果在查看这些范围时出现问题,则可能不是下载过程,也不是JSoup或
    HttpUrlConnection
    setting.当您用Java将网页保存为字符串时,您并没有丢失这些字符,实际上您可以免费获得UTF-8
  • 然而:每当程序员试图将
    UTF-8字符串
    保存到
    '.txt'文件
    '.html'文件
    时,如果你接着在web浏览器中查看该内容(该文件),你可能会看到的只是那个恼人的问号:�. 这是因为您需要确保让您的web浏览器知道,您使用Java保存的
    '.html”文件
    不打算使用(旧得多、短得多的)
    8位ASCII
    范围进行解释
如果您在任何web浏览器中查看
'.html'文件
,或将该文件上载到Google云平台(或某个托管站点),则必须执行以下两项操作之一:

  • 将注释中提到的
    标记
    包括在HTML页面的
    ..
    部分中
  • 或者在任何托管平台中提供设置,您必须将文件标识为
    'text/html,charset=UTF-8'
    。在谷歌云平台存储桶中,有一个弹出菜单可将此设置分配给任何文件

HTML文件的编码是什么?@AlexRudenko这里我不是下载或查看HTML中的内容,我所做的只是以java字符串的形式读取内容,然后解析并转换为unicode,然后保存,就是这样。我试图说语句“另存为java
string
并将其转换为
unicode
”没有任何意义(对我来说,我很确定我非常理解这些东西,但我确实会犯错误)…在Java中,
字符串的
已经是Unicode了。这是因为Unicode
字符的
是16位的,而Java
字符串的
是由16位
字符的
组成的,所以它们已经是Unicode
字符的
(不是
ASCII字符的
)。如果你能回答这个问题:“你好吗?”查看“这些文件?你在哪里保存它们?”也许我可以帮你更多…我的编码(现在持续4年),一直是语言翻译-虽然我已经偏离HTML解析…所以我经常被Java中的外语字符(UNICODE)和文本文件/HTML文件掩埋!!@我正在将这些数据保存到DB中(mysql)并检索primefaces page.xhtmlOK中的显示…好吧…让我说两件事:① 我不做太多的工作② 我可以提出一个建议,你真的应该检查一下(即使我错了)…有两个“东西”或“配置”我会强烈建议你检查一下。。。