Skip to main content
 首页 » 编程设计

python之无法在python中将ascii转换为utf-8

2025年05月04日10soundcode

我有波兰语单词“wąż”,意思是“蛇”

但我是从 ascii 格式的网络服务中获取的,所以:

snake_in_polish_in_ascii="w\xc4\x85\xc5\xbc" 

有我尝试的结果:

print str(snake_in_polish_in_ascii) #this prints me w─ů┼╝ 
 
snake_in_polish_in_ascii.decode('utf-8') 
print str(snake_in_polish_in_ascii) #this prints me w─ů┼╝ too 

和这段代码:

print  str(snake_in_polish_in_ascii.encode('utf-8')) 

引发异常:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 1: ordinal not in range(128) 

我在具有波兰文化的 Windows Xp 上使用 Wing Ide。

在文件顶部我有:

# -*- coding: utf-8 -*- 

我找不到解决它的方法。为什么我无法在输出中得到“wąż”?

请您参考如下方法:

这个表达式:

snake_in_polish_in_ascii.decode('utf-8') 

不要就地改变字符串试试这样:

print snake_in_polish_in_ascii.decode('utf-8') 

关于为什么当你执行 print snake_in_polish_in_ascii 你看到 w─ů┼╝ 的原因是因为你的终端使用 cp852 编码(中欧和东欧)试试这个要看:

>>> print snake_in_polish_in_ascii.decode("cp852") 
w─ů┼╝