我有一些UTF 8字符,我试图打印出来,但当我发出以下代码
csv = 'name\n"BOVÉR, LIÙSAIDH"'
`df = pandas.DataFrame.from_csv( StringIO(csv), index_col=False, encoding='utf-8')
print df.to_html()
Run Code Online (Sandbox Code Playgroud)
我收到如下错误
UnicodeEncodeError:'ascii'编解码器不能对位置260中的字符u'\ xc9'进行编码:序数不在范围内(128)
我尝试添加强制unicode标志,但没有改变任何东西.有小费吗?
这个问题不够精确,无法提供明确的答案。关于文件和字符串编码、pandas 版本以及特定错误来自何处的问题仍然存在。但有足够的空间来构建 MCVE 来评估 python 和 python3 解释器上的问题。
\n\n需要注意的几件事:
\n\nfrom_csv()在最近的 pandas 中已过时。read_csv()鉴于所使用的 pandas 版本,请尽早使用# -*- coding: utf-8 -*-\nimport pandas as pd\nfrom io import StringIO\nimport sys\n\nprint(sys.version)\nprint(pd.__version__)\n\ncsv = u\'name\\n"BOV\xc3\x89R, LI\xc3\x99SAIDH"\'\nprint(type(csv))\ndf = pd.read_csv(StringIO(csv), index_col=False, encoding=\'utf-8\')\nprint(df.to_html())\nRun Code Online (Sandbox Code Playgroud)\n\npython2.7运行:
\n\npython unicode_to_html.py \n2.7.16 (default, Mar 19 2019, 10:44:02) \n[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)]\n0.20.3\n<type \'unicode\'>\n...snip...\n <td>BOV\xc3\x89R, LI\xc3\x99SAIDH</td>\n...snip...\n\nRun Code Online (Sandbox Code Playgroud)\n\npython3运行:
\n\npython3 unicode_to_html.py \n3.7.2 (default, Mar 19 2019, 10:33:22) \n[Clang 10.0.0 (clang-1000.11.45.5)]\n0.24.2\n<class \'str\'>\n...snip...\n <td>BOV\xc3\x89R, LI\xc3\x99SAIDH</td>\n...snip...\n\nRun Code Online (Sandbox Code Playgroud)\n