Django/python:python如何编码非英语字符

2024-04-20 04:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一些字符串操作,并尝试将它们放入数据库中。然后我遇到了这个(我相信是德国人):

Sichere Administration von VoIP-Endgeräten

当我把它放入数据库后,我发现非英语字符变成了:

^{pr2}$

当我从数据库中获取它并将这个字符串传递给子流程.Popen(),显示错误:

TypeError: execv() arg 2 must contain only strings

我的问题是:这是怎么发生的?还有谁有什么有用的参考资料,关于如何学习编码/解码的东西?谢谢。在


Tags: 字符串数据库错误流程字符popenvoipadministration
1条回答
网友
1楼 · 发布于 2024-04-20 04:31:08

{是的,你正在处理^的unicode文本。在

第一个字符串是被解释为拉丁语-1的UTF-8数据,第二个字符串是unicode字符串,如果不先编码,就不能传递给Popen()

>>> print u'\u00e4'  # A unicode escape code for the latin-1 character ä
ä
>>> u'\u00e4'.encode('utf8')  # The same character encoded to UTF-8
'\xc3\xa4'
>>> print u'\u00e4'.encode('utf8').decode('latin1')  # Misinterpreted as Latin-1
ä

在将数据传递给.Popen()之前,您需要弄清楚外部进程可以处理什么编码,并对数据调用.encode()。在

相关问题 更多 >