python积累二:中文乱码解决方法

根据网上提供的解决方法:添加#coding=utf-8或# -*- coding: utf-8 -*-

#coding=utf-8

print "还不行?"

执行结果:还是乱码!:(

后,修改为:

#coding=utf-8

print u"还不行?"

执行结果:还不行?:)

补充:

1. u为unicode字符串。

Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题;Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

转成unicode字符串,在字符串前面增加一个u即可。

2.为何要添加#coding=utf-8?

因为有些机器的默认编码不是utf-8,使用#coding=utf-8,是告诉Python解释器,用UTF-8编码读取源代码。

查看自己机器的当前编码格式方法:

Windows平台下,进入DOS窗口,输入:chcp
可以得到操作系统的代码页信息,你可以从控制面板的语言选项中查看代码页对应的详细的字符集信息。

936为GBK编码,65001为unicode编码。

下面是所有的编码:

代码页       国家(地区)或语言
437          美国
708          阿拉伯文(ASMO 708)
720          阿拉伯文(DOS)
850          多语言(拉丁文 I)
852          中欧(DOS) - 斯拉夫语(拉丁文 II)
855          西里尔文(俄语)
857          土耳其语
860          葡萄牙语
861          冰岛语
862          希伯来文(DOS)
863          加拿大 - 法语
865          日耳曼语
866          俄语 - 西里尔文(DOS)
869          现代希腊语
874          泰文(Windows)
932          日文(Shift-JIS)
936          中国 - 简体中文(GB2312)
949          韩文
950          繁体中文(Big5)
1200         Unicode       
1201         Unicode (Big-Endian)
1250         中欧(Windows)
1251         西里尔文(Windows)
1252         西欧(Windows)
1253         希腊文(Windows)
1254         土耳其文(Windows)
1255         希伯来文(Windows)
1256         阿拉伯文(Windows)
1257         波罗的海文(Windows)
1258         越南文(Windows)
20866        西里尔文(KOI8-R)
21866        西里尔文(KOI8-U)
28592        中欧(ISO)
28593        拉丁文 3 (ISO)
28594        波罗的海文(ISO)
28595        西里尔文(ISO)
28596        阿拉伯文(ISO)
28597        希腊文(ISO)
28598        希伯来文(ISO-Visual)
38598        希伯来文(ISO-Logical)
50000        用户定义的
50001        自动选择
50220        日文(JIS)
50221        日文(JIS-允许一个字节的片假名)
50222        日文(JIS-允许一个字节的片假名 - SO/SI)
50225        韩文(ISO)
50932        日文(自动选择)
50949        韩文(自动选择)
51932        日文(EUC)
51949        韩文(EUC)
52936        简体中文(HZ)
65000        Unicode (UTF-7)
65001        Unicode (UTF-8)

上一篇:配置 Django


下一篇:第四届河南省ACM 表达式求值 栈