作为Python 2.7的法国用户,我试图在Python控制台中正确打印包含重音的字符串,例如“é”,“è”,“à”等。
我已经知道在字符串的显式值之前使用u的技巧,例如:
server {
listen 80;
server_name mydomain.com;
try_files $uri $uri/ /index.html @proxy;
location @proxy {
proxy_pass http://127.0.0.1:83;
}
}
可以正确打印最后一个字符。
现在,我的问题是:如何对存储为变量的字符串执行相同的操作?
确实,我知道我可以执行以下操作:
print(u'Université')
但是问题在于mystring = u'Université'
print(mystring)
的值一定要传递到SQL查询中(使用mystring
),因此我无法负担psycopg2
的内部存储u
的值。
那我该怎么做
“打印mystring
的unicode值”?
答案 0 :(得分:2)
u
标记不是值的一部分,它只是类型指示符。要将字符串转换为Unicode字符串,您需要知道编码。
unicodestring = mystring.decode('utf-8') # or 'latin-1' or ... whatever
并进行打印,通常(在Python 2中)需要转换回系统在输出文件句柄上接受的任何内容:
print(unicodestring.encode('utf-8')) # or 'latin-1' or ... whatever
Python 3通过将Unicode字符串和bytes
对象分开来澄清(尽管没有直接简化)这种情况。