【发布时间】:2016-11-04 11:55:48
【问题描述】:
我正在尝试使用我能收集到的所有旧备份对我的短信进行数值分析。理想情况下,表情符号将包含在分析中。我正在使用 Python 和 Perl 的组合将所有内容集中到一个地方,一旦完成,我可能会使用 R。
但是,我遇到了表情符号编码的问题。我的一些备份是使用 Android 上的 SMS Backup and Restore 应用程序创建的,以将我的文本提取为 XML 文件。我开始在 t413 之前将我的 XML 放入 this Python SMS module available on github。当模块在解析器中抛出错误时,我将消息放入验证器以查看发生了什么,并且 XML 由于无效字符而无效。例如,我收到的部分文本不能很好地与 Perl 上的 XML::Validate 模块配合使用:
So if we get it out hang out will be short ��...
我不知道 Unicode 的所有细节,但据我所知,我的短信包含 UTF-8 中用于高/低代理项的 HTML 转义字符。单独它们是无效字符,但它们一起编码????。 (XML 标头确实指定了 UTF-8。)
很多这样的文本已经从我的手机中删除了(其中一些备份已经有将近一年的历史了)所以我不能简单地再次提取它们,看看我是否可以修复这样的格式。
我的问题:在我开始深入研究 Unicode 和 HTML 转义字符的细节并花时间自己写一些东西来解决这个问题之前(我从this question 知道有一个公式可以用来转换代理项,并且Python 中有字符串的编码/解码方法,以及帮助处理 HTML 实体的各种点点滴滴),Python 或 Perl 中是否有任何现有的模块/内置函数可以帮助我修复文件的编码,或者在至少让我去那里的路的一部分? (甚至是我缺少的 Unix/Linux 命令行工具。)
【问题讨论】: