gpt4 book ai didi

python - Python 中文本的编码和解码

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:56 25 4
gpt4 key购买 nike

我目前正在使用一个 python 脚本 (appengine),它接受用户的输入(文本)并将其存储在数据库中以便稍后重新分发。

就编码而言,传入的文本未知,我只需将其编码一次。

来自客户的示例文本:

  • 这个%20是%20a%20测试
  • 这是一个测试

现在在 python 中,我认为我可以做的就是解码它然后对其进行编码,这样两个样本都变成:

  • 这个%20是%20a%20测试
  • 这个%20是%20a%20测试

我使用的代码如下:

#
# Dencode as UTF-8
#
pl = pl.encode('UTF-8')

#
#Unquote the string, then requote to assure encoding
#
pl = urllib.quote(urllib.unquote(pl))

其中 pl 来自负载的 POST 参数。

问题

问题是有时我会得到特殊(中文、阿拉伯语)类型的字符,并收到以下错误。

'ascii' codec can't encode character u'\xc3' in position 0: ordinal not in range(128)
..snip..
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc3' in position 0: ordinal not in range(128)

有谁知道处理上述问题的字符串的最佳解决方案吗?

谢谢。

最佳答案

替换

pl = pl.encode('UTF-8')

pl = pl.decode('UTF-8')

因为您正在尝试将字节字符串解码为字符串。

Python 2 的一个设计问题允许您通过自动将字节串(已经编码)解码为 ASCII 来.encode(这就是为什么它显然适用于 ASCII 字符串,仅对非ASCII 字节)。

关于python - Python 中文本的编码和解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11661822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com