我有波兰语"wąż",意思是"蛇"
但是我从ascii的webservice中得到它,所以:
snake_in_polish_in_ascii="w\xc4\x85\xc5\xbc"
Run Code Online (Sandbox Code Playgroud)
有我的尝试结果:
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
Run Code Online (Sandbox Code Playgroud)
而这段代码:
print str(snake_in_polish_in_ascii.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
引发异常:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 1: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我正在使用Wing Ide,在Windows Xp上使用波兰文化.
在文件顶部我有:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
我找不到解决问题的方法.为什么我不能在输出中得到"wąż"?
这个表达式:
snake_in_polish_in_ascii.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
不要改变字符串就像这样:
print snake_in_polish_in_ascii.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
关于为什么当你print snake_in_polish_in_ascii看到w????的原因是因为你的终端使用cp852编码(中欧和东欧)尝试这样看:
>>> print snake_in_polish_in_ascii.decode("cp852")
w????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34251 次 |
| 最近记录: |