我正在处理读取用户短信的内容并将其导出到csv文件,然后可以下载这些文件。消息是从第三方Web界面检索的 - 我实际上是使用js来获取每条消息的html并根据需要进行编译。每条消息的内容都被添加到一个变量中,一旦收集了所有消息,该变量将被提供给新的Blob,然后下载。
我遇到的问题是,在这个网页界面中,表情符号表示为图像,而不是字符。因此,在将包含表情符号的消息写入文件时,结果如下:
"Blah blah blah <img height="18px" width="18px" class="emoji adjustedSpriteForMessageDisplay spriteEMOJI sprite-1f612" data-textvalue="%F0%9F%98%92" src="assets/blank.gif">"
现在,从这张图片中,我们可以获得2个可行的值:
UTF-8十六进制值
F09F9892
和Unicode代码点(我可能指的是这个错误,我不太了解编码)。
U+1f612
现在,我想要做的是取这些值中的任何一个(以较好者为准),并将其作为字符本身写入csv文件。因此,当在文本编辑器中查看csv文件或有什么内容时,它将显示为
虽然我不知道从哪里开始。也许它就像在字符值周围抛出一些语法一样简单,但我还没有从谷歌那里得到任何东西,因为我对编码不够熟悉,无法知道Google的内容。< / p>
答案 0 :(得分:1)
我建议您在从网页抓取数据时对数据进行预处理,而不是事后从字符串中提取数据。
然后,您可以使用decodeURIComponent()
解码百分比编码的字符串:
decodeURIComponent('%F0%9F%98%92')
将其与jQuery结合使用以访问data-textvalue
- 属性:
decodeURIComponent($(element).data('textvalue'))
我在JSFiddle上创建了一个简单示例。 出于某种原因,表情符号在我的浏览器的结果屏幕中无法正确呈现,但这是一个字体问题。使用DOM检查器查看结果(或将文本复制到另一个应用程序中)时,结果将显示为笑脸。
答案 1 :(得分:0)
CSV文件格式没有字符编码信息,因此Excel通常采用ASCII格式。
https://en.wikipedia.org/wiki/Comma-separated_values#General_functionality