问题
我的问题如下所述:
如何使用 R 来读取包含 HTML 表情符号代码的字符串��
?
我想: (1)在解析的字符串中
表示表情符号(例如,作为unicode符号:),或者(2)将其转换为等效的文本(“ ”):hugging face:
背景
我有一个文本消息的 XML 数据集(来自 Android/iOS 应用Signal),我正在将其读入 R 以进行文本挖掘项目。数据如下所示,每个文本消息都表示在一个sms
节点中:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- File Created By Signal -->
<smses count="1">
<sms protocol="0" address="+15555555555" contact_name="Jane Doe" date="1483256850399" readable_date="Sat, 31 Dec 2016 23:47:30 PST" type="1" subject="null" body="Hug emoji: ��" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" />
</smses>
问题
我目前正在使用xml2
R 的包读取数据。但是,当我使用该xml2::read_xml
函数时,我收到以下错误消息:
Error in doc_parse_raw(x, encoding = encoding, base_url = base_url, as_html = as_html, :
xmlParseCharRef: invalid xmlChar value 55358
据我了解,这表明表情符号字符未被识别为有效的 XML。
使用该xml2::read_html
功能确实有效,但会删除表情符号字符。这里有一个小例子:
example_text <- "Hugging emoji: ��"
xml2::xml_text(xml2::read_html(paste0("<x>", example_text, "</x>")))
(输出[1] "Hugging emoji: "
:)
这个字符是有效的 HTML——谷歌搜索��
实际上将它在搜索栏中转换为“拥抱脸”表情符号,并显示与该表情符号相关的结果。
我发现的其他信息似乎与这个问题有关
我一直在搜索 Stack Overflow,但没有找到与此特定问题相关的任何问题。我也无法找到一个表格,在它们所代表的表情符号旁边直接给出 HTML 代码,因此无法在解析之前在一个大循环中将这些 HTML 代码(尽管效率低下)转换为它们的文本等价物数据集;例如,此列表及其基础数据集似乎都不包含字符串55358
。