V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
oldbird
V2EX  ›  Python

关于 python2 在不同执行工具下的中文乱码问题

  •  
  •   oldbird · 2019-03-31 22:04:24 +08:00 · 1936 次点击
    这是一个创建于 2065 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python2.7.14 32bit 在 IDLE (已设置文件默认编码为 utf-8 )中编写 py 文件如下:

    #coding:utf-8

    a="中文"

    print a

    b=a.decode('utf-8')

    print b

    c=b.encode('gbk')

    print c

    F5 运行后,3 个均顺利打出,无乱码。

    在 CMD 里运行,分别打印为

    ?腑鏂?

    ?形?

    ?形?

    cmd 的编码是 cp936,查了说就是 gbk。

    在 wingide 里运行,打印出

    中文

    中文

    XXXX #四个黑色斜方块,里面是问号

    在 pyscripter 里运行,打印出

    涓枃

    中文

    中文

    在 vscode 里运行,打印出

    涓枃

    涓枃

    中文

    为什么会有这些不同? 怎么做到统一? 谢谢

    8 条回复    2019-04-01 13:06:55 +08:00
    ClutchBear
        1
    ClutchBear  
       2019-03-31 23:09:43 +08:00
    所以不用 cmd 就是了.
    orangeade
        2
    orangeade  
       2019-03-31 23:12:57 +08:00 via Android
    别用 Python2 了,明天就不支持了
    orangeade
        3
    orangeade  
       2019-03-31 23:13:27 +08:00 via Android
    @orangeade 明天 -> 明年 ……
    silkriver
        4
    silkriver  
       2019-03-31 23:18:38 +08:00
    powershell 用 utf-8,cmd 用 gbk,你这些不同都只是由于这一点
    ysc3839
        5
    ysc3839  
       2019-03-31 23:24:45 +08:00
    ```
    > chcp
    活动代码页: 936

    > py -2 test.py
    涓枃
    中文
    中文
    ```
    我这里 cmd 的情况是这样的。
    Sylv
        6
    Sylv  
       2019-04-01 00:25:41 +08:00 via iPhone
    相关参考:
    /t/163786
    tomczhen
        7
    tomczhen  
       2019-04-01 00:49:42 +08:00
    不显示乱码的前提除了 Python 支持编码之外,如果是在终端中显示,也需要终端有编码支持才行吧。
    no1xsyzy
        8
    no1xsyzy  
       2019-04-01 13:06:55 +08:00
    简单地说:
    字 gbk utf-8
    中 D6D0 E4B8AD
    文 CEC4 E69687
    腑 B8AD E88591
    鏂 E696 E98F82
    形 D0CE E5BDA2
    涓 E4B8 E6B693
    枃 9687 E69E83
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1514 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:54 · PVG 00:54 · LAX 08:54 · JFK 11:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.