【发布时间】:2017-06-28 00:42:59
【问题描述】:
我正在尝试将带有表情符号内容的文本文件转换为带有表情符号的 html 代码或使用 Java 的十六进制代码的文件。 示例:
我/p:<div id="thread" style="white-space: pre-wrap;"><div>????????????????????⚽️????
预期 o/p :<div id="thread" style="white-space: pre-wrap;"><div>😀😀😃🍎🍏⚽️🏀
上面输出的'????'应该改成对应的html实体码'& # 128512;'
这里给出了 Html 实体代码和十六进制代码的详细信息: http://character-code.com/emoticons-html-codes.php
我尝试过的示例代码如下:
try {
File file = new File("/inFile.txt");
str = FileUtils.readFileToString(file, "ISO-8859-1");
System.out.println(new String(str.getBytes(), "UTF-8"));
String results = StringEscapeUtils.escapeHtml4(str);
System.out.println(results);
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
所以你有代码要做某事,你不给我们看代码,然后问为什么代码不起作用? 真的吗?!?!?
-
添加了我尝试过的示例代码。
-
您确定文件使用
ISO-8859-1编码吗?这似乎......不太可能。 -
我不确定..我们正在获取编码为“UTF-8”的 xml 文件。这些表情符号字符是 CDATA 的一部分。我只是想用相应的 HTML 进行解码和转换表情符号的实体代码。
-
所以你的问题似乎集中在
StringEscapeUtils.escapeHtml4(),而你的抱怨是它没有正确映射表情符号。 1)我假设那来自 Apache Commons Lang? 2)您使用的是哪个版本的库? 3) 你为什么要这样做,而不是仅仅用 UTF-8 编写 HTML?
标签: java html html-entities emoji html-encode