Python编码问题整理纪录

在开发Python程序的过程中,会涉及到三个方面的编码:

      1、Python程序文件的编码

      2、Python程序运行时环境(IDE)的编码

      3、Python程序读取外部文件、网页的编码



1、Python程序文件的编码

      例如:

      Python2自带的IDE,当创建了一个文件保存的时候提示:

图片发自简书App

    这是因为Python2编辑器默认的编码是ASCII,它是无法识别中文的,所以会弹出这样的提示。这也是我们在大多情况下写python2程序的时候习惯在程序的第一行加上:#coding=utf-8

      其实,这里的编码文件是很容易解决的。


2、Python程序运行时环境(IDE)的编码

      执行下面的一段程序。

      #coding=utf-8from selenium import webdriver driver = webdriver.Firefox() driver.get("http://www.baidu.com") # 返回百度页面底部备案信息 text = driver.find_element_by_id("cp").text print(text) driver.close()

      在windows cmd下执行:


图片发自简书App

      我们要获取的信息是:

      ©2015 Baidu 使用百度前必读 意见反馈 京ICP证030173号

      Windows cmd 用的是cp936,也就是中文的GB2312,在GBK的字符集里没有“©”,这就导致通过GBK解析的时候出现编码问题。

      这就像你在翻译英文的时候,出现了一个单词,这个单词你查遍了牛津大词典都没找到对应的含义解释,那么自然是会有问题的。

      那假设,我还就想在cmd下执行这个python程序了,那么可以去修改cmd的默认编码类型为utf-8,对应的编码为CHCP 65001(utf-8)。在cmd 下输入:chcp 65001 命令回车。

图片发自简书App

    然后,修改cmd的字体为“Lucida Console”,再来执行程序就可以被正确输出了。


图片发自简书App


3、Python程序读取外部文件、网页的编码




认识常见编码

      GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码

      GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名

      cp936:中文本地系统是Windows中的cmd,默认codepage是CP936,cp936就是指系统里第936号编码格式,即GB2312的编码。

      (当然有其它编码格式:cp950 繁体中文、cp932 日语、cp1250 中欧语言。。。)

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

      UTF-8 (8-bit Unicode Transformation Format)是最流行的一种对 Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。ASCII 字符每个只需要用一个 byte ,与 ASCII 的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。

代码页是字符集编码的别名,也有人称"内码表"。早期,代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称。当时通用的操作系统都是命令行界面系统,这些操作系统直接使用BIOS供应的VGA功能来显示字符,操作系统的编码支持也就依靠BIOS的编码。现在这BIOS代码页被称为OEM代码页。图形操作系统解决了此问题,图形操作系统使用自己字符呈现引擎可以支持很多不同的字符集编码。

  早期IBM和微软内部使用特别数字来标记这些编码,其实大多的这些编码已经有自己的名称了。虽然图形操作系统可以支持很多编码,很多微软程序还使用这些数字来点名某编码。

下表列出了所有支持的代码页及其国家(地区)或者语言:

代码页      国家(地区)或语言

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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容