Discuss / Python / 中文乱码问题

中文乱码问题

廖雪峰

#1 Created at ... [Delete] [Delete and Lock User]

在写.py文件时,注意包含

# -*- coding: utf-8 -*-

包含中文的字符串必须是unicode

# -*- coding: utf-8 -*-
print u'中文'

最后保存文件的时候要用utf-8编码,决不能用gbk等编码保存。

我用eclipse编写代码的时候,输出中文目录,就必须用GBK编码,不然输出乱码。用notepad++就没关系。

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

Eclipse在设置里找Workspace -> Encoding选成UTF-8就没有乱码了

我试过了,不行。应该是读取目录的时候windows使用的GBK。 我现在想到的方法是,在文件头上使用:

-- coding: utf-8 --

在输出含中文目录的时候加上.decode('gbk'): print(os.path.join(s,x).decode('gbk'))

我试过了,不行。应该是读取目录的时候windows使用的GBK。 我现在想到的方法是,在文件头上使用:

#-- coding: utf-8 --

在输出含中文目录的时候加上.decode('gbk'):

print(os.path.join(s,x).decode('gbk'))

廖雪峰

#6 Created at ... [Delete] [Delete and Lock User]

你先试试

print u'中文'

如果这个没问题,那就说明utf-8和Python本身是没问题的。

中文目录是因为windows用gbk存的文件名,所以读出来的str是gbk编码,必须用decode('gbk')才能变成unicode。更好的方法是检测编码

https://pypi.python.org/pypi/charset/

indeyoLXL

#7 Created at ... [Delete] [Delete and Lock User]

用的Notepad++,在格式那里选了“以UTF-8格式编码”,运行程序,还是不行,会出现乱码T_T。。。 求助~~~

麦嘉

#8 Created at ... [Delete] [Delete and Lock User]

windows 下python写入文件的编码默认是GBK的,很麻烦! 如果用python 2.X可以用

import codecs f = codecs.open('yourpath', 'a', 'utf8')

来强制保证写入文件的是utf8编码,如果是python3.x open方法直接就能加'utf8'这个参数,无需codecs模块。

Mr丿Mian

#9 Created at ... [Delete] [Delete and Lock User]

python版本2.x,文本编辑器notepad++

birth = raw_input('birth:')
if birth < 2000:
    print '00前'
else:
    print '00后'

命令行窗口显示乱码 求解救

廖雪峰

#10 Created at ... [Delete] [Delete and Lock User]

字符串记得加u: u'包含中文的string'


  • 1
  • 2

Reply