跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • py2 中文碰到的一个问题
未分類
11 5 月 2020

py2 中文碰到的一个问题

py2 中文碰到的一个问题

資深大佬 : oldbird 16

因为宿主软件的原因,必须使用 py2 。 WIN10 中文系统,在 PY2.7 的 IDLE 里做了个试验,输入:

a=”汽车”

print a,len(a),type(a)

b=a.decode(‘gbk’)

print b,len(b),type(b)

c=unicode(a)

print c,len(c),type(c)

d=u’汽车’

print d,len(d),type(d)

输出:

汽车 4 <type ‘str’>

汽车 2 <type ‘unicode’>

汽车 2 <type ‘unicode’>

Æû³µ 4 <type ‘unicode’> 不理解 d 为什么输出乱码,请教。

大佬有話說 (7)

  • 資深大佬 : ysc3839

    Python 3 中 print(‘Æû³µ’.encode(‘latin-1’).decode(‘gbk’)) 的结果是 “汽车”,所以推测 Python 把这个文件当成 latin-1 编码进行解码了。

  • 資深大佬 : superrichman

    py2 + 中文 windows 环境 = 中文解码灾难现场

    py2 想要正常点的中文得在开头对 sys 设置 defaultencoding,输出的时候还得用 encode,decode 鼓捣一番。windows 有些环境默认还是 gbk,或者是 cp936 或者是其他乱七八糟的编码,你在 a 程序里能正常输出,换到 b 程序又是乱码。

    其实 py3 和 py2 可以在同一个系统里共存的,直接用 py3 不香吗?

  • 資深大佬 : Flourite

    二正解,还碰到过 py2 解码的问题,接口一切正常,但不知道为什么接口过来的数据解码后就乱码了,py3 重写搞定

  • 資深大佬 : liangch

    用 py3 吧。省力点。

  • 資深大佬 : SakuraSa

    试试添加环境变量:PYTHONIOENCODING=gbk

  • 資深大佬 : Mark24

    今天 Python2 正式结束维护。

    进入 Python3 时代

  • 資深大佬 : ADMlN

    写 python 脚本的时候,也要注意一下脚本文件本身的编码,python2 通常用 cp936 编码,并且要在文件开头加上:
    “`
    # -*- coding: cp936 -*-
    “`
    但如果又要用 tkinter 库的话,tkinter 显示中文用的编码是 utf-8,这时就要用 encode,decode 把编码从 cp936 转成 utf-8 再显示。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具