Mor*_*eus 3 python csv unicode
我有一些用户推文的 csv 数据。
\n\n在excel中显示如下:
\n\n\xe2\x80\xb0\xc3\x9b\xc3\x8fIt felt like they were my friends and I was living the story with them\xe2\x80\xb0\xc3\x9b #retired #IAN1 \nRun Code Online (Sandbox Code Playgroud)\n\n我已将此 csv 文件导入到 python 中,在 python 中,相同的推文显示如下(我正在使用 putty 连接到服务器,并从 putty 的屏幕复制了此内容)
\n\n\xe2\x96\x92\xe2\x96\x92\xe2\x96\x92It felt like they were my friends and I was living the story with them\xe2\x96\x92\xdb\x9d #retired #IAN1 \nRun Code Online (Sandbox Code Playgroud)\n\n我想知道如何正确显示这些表情符号字符。我正在尝试分隔此推文中的所有单词,但我不确定如何分隔这些表情符号 unicode 字符。
\n事实上,你肯定丢失了数据\xe2\x80\xa6
\n我不知道\xe2\x80\x99 不知道你如何从用户推文中获取 CSV 文件(你可以解释一下)。但一般来说,CSV 文件采用“cp1252”(或“windows-1252”)编码,有时采用“iso-8859-1”编码。如今,我们可以找到以“utf-8”编码的CSV文件。
\n如果您的推文使用“cp1252”或任何 8 位单字节编码字符集进行编码,则表情符号会丢失(被“?”替换)或转换错误。
\n然后,如果您在 Excel 中打开 CSV 文件,它将使用 \xe2\x80\x99s 默认编码(“cp1252”)并加载包含损坏字符的文件。您可以尝试使用 Libre Office,它有一个对话框,可以让您更轻松地选择编码。
\nPutty 中的复制/粘贴还会根据您的控制台编码\xe2\x80\xa6 转换您的字符,这是最糟糕的!
\n如果您的 CSV 文件使用“utf-8”编码(或“utf-16”、“utf-32”),您可能有更多机会保留表情符号。但仍然存在一个问题:大多数表情符号的代码点都大于 U+FFFF(十进制 65535)。例如,笑脸“”的代码点为 U+1F600)。
\n这种字符在Python中处理得很糟糕,试试这个:
\n# coding: utf8\nfrom __future__ import unicode_literals\n\nemoji = u""\n\nprint(u"emoji: " + emoji)\nprint(u"repr: " + repr(emoji))\nprint(u"len: {}".format(len(emoji)))\nRun Code Online (Sandbox Code Playgroud)\n你\xe2\x80\x99将得到(如果你的控制台允许的话):
\nemoji: \nrepr: u\'\\U0001f600\'\nlen: 2\nRun Code Online (Sandbox Code Playgroud)\n\\U序列与 类似\\u,但需要 8 个十六进制数字,而不是 4 个。编辑:使用Python 3,您可以获得:
\nemoji: \nrepr: \'\'\nlen: 1\nRun Code Online (Sandbox Code Playgroud)\nrepr(),您可以做的是将您的 CSV 文件(片段)作为附件发布,然后可以对其进行分析\xe2\x80\xa6
\n另请参阅Python 2.7 文档中的Python 源代码中的 Unicode Literals 。
\n