打开一个文本文件之后,输出文本内容 全部都变成了乱码   怎么才可以正常的选择输出文本文件中某个汉字

2 收藏


直接登录
最新评论
  • %宇%   2016/05/05

    字符串.decode(“GBK”)

  • Japhasiac 测试 2016/05/05

    有个package叫chardet的应该能帮你,然后就是用正确的编码格式解析数据的问题了。

  • 龙雀 野生程序员 2016/05/10

    如果文件编码和输出环境的编码相同,那就是正常的。如果不是就需要转换。你可以试试 someStr.encode().decode(‘gbk’) 。

  • 花生豆角 程序员 2016/05/10

    python好学吗?我想转这个了

  • 逗逼程序员 PHP开发工程师 2016/05/11

    先定义 字符集。

  • jackyspy   2016/07/30

     

    py2里面fileobj.read()读出来的是bytes,如果文件编码方式刚好与终端编码一致,则pring输出没问题。如果不一致则需要转换。

    如:文件编码为utf-8,windows终端默认是gbk。

    print(content.decode(‘utf-8’).encode(‘gbk’))

     

     

  • 推荐使用codecs模块

    python 2.7自带codecs包,通过它去读写文件,基本可以忽略编码的问题

  • 名一   2016/08/23

    添加ignore

  • er3456qi 学生 2016/08/23

    为啥不用3.5?

  • #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    __author__ = “tao”
    print(“你好美女,交个朋友把”)

  • 路易十四 数据挖掘 2016/08/24

    最近用python做不少整理数据的工作,其中就包含不少关于中文处理的,所以总总结一下方便以后使用

    1:json含汉字的utf编码读写

    f2 = codecs.open(‘country_ipnum.json’, mode=‘rb’, encoding=‘utf-8’)
    c = eval(f2.read())

    如此读取可以原样还原出json中的数据结构

    line = json.dumps(a[‘features’][i]) + ‘\n’
    f3.write(line.decode(“unicode_escape”))

    在写入json的时候,可以这样每行都写入json,注意编码,可以确保把汉字写进入。

    2:str和unicode转换

    utf8样例:

    ‘asdasd’.decode(‘utf8’)

    原理:

    简单说来就是,python内部表示字符串用unicode(其实python内部的表示和真实的unicode是有点差别的,对我们几乎透明,可不考虑),和人交互的时候用str对象。

    s.decode ——–>将s解码成unicode,参数指定的是s本来的编码方式。这个和unicode(s,encodename)是一样的。

    u.encode ——–>将unicode编码成str对象,参数指定使用的编码方式。

    助记:decode to unicode from parameter

    encode to parameter from unicode

    只有decode方法和unicode构造函数可以得到unicode对象。

    上述最常见的用途是比如这样的场景,我们在python源文件中指定使用编码cp936,

    # coding=cp936或#-*- coding:cp936 -*-或#coding:cp936的方式(不写默认是ascii编码)

    这样在源文件中的str对象就是cp936编码的,我们要把这个字符串传给一个需要保存成其他编码的地方(比如xml的utf-8,excel需要的utf-16)

    通常这么写:
    strobj.decode(“cp936”).encode(“utf-16”)

    3:文字比对

    先type输出其类型,然后 最好使用==进行比较

    if(c[k][‘country’].decode(‘utf8’) == a[“features”][i][‘properties’][‘country_cn’]):

    在这里,前部分是str的汉字编码,用decode转换成utf8.然后与后半部分原本就是unucode进行对比

  • 首先确认程序读取时设置的编码与文本文件本身的编码一致吗?