根据UTF-8十六进制代码

时间:2015-06-14 20:18:10

标签: javascript jquery unicode utf-8

我正在处理读取用户短信的内容并将其导出到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文件或有什么内容时,它将显示为

enter image description here

虽然我不知道从哪里开始。也许它就像在字符值周围抛出一些语法一样简单,但我还没有从谷歌那里得到任何东西,因为我对编码不够熟悉,无法知道Google的内容。< / p>

2 个答案:

答案 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

Microsoft Excel mangles Diacritics in .csv files?

相关问题