美文网首页
使用Unicode码进行文字处理

使用Unicode码进行文字处理

作者: 青椒rose炒饭 | 来源:发表于2019-06-28 20:18 被阅读0次

    什么是Unicode码

    每个字符分配一个编号表示为\uxxxx其中的xxxx为十六进制数。程序中可以很方便的操作,但是如果是写到文件或者终端上将被编码为字节流。字符是可以实现一个或者多个字形的抽象实体,一个字体是字符到字形的映射,只有字形能够显示出来。

    从文件中提取已编码文本

    读取其他编码的文件是用open函数不能正常打开,需要使用模块codecs,使用模块下的open方法,在参数encoding中指定编码就能正常显示文件。代码如下,样本文件是使用的latin2编码。

    import nltk
    
    #获取文件所在的路径
    path = nltk.data.find('corpora/unicode_samples/polish-lat2.txt')
    print(path)
    '''
        #使用open函数不能正常打开文件
        f = open(path)
        contant = f.read()
        print(contant)
    '''
    #使用编码模块打开文件
    import codecs
    #使用编码模块打开文件,提前预知编码格式为latin2
    f = codecs.open(path,'r',encoding="latin2")
    #逐行输出文件内容
    for line in f:
        print(line)
    
    #设置字符串为unicode编码
    text = u'你好世界,你好python'
    print(text)
    
    #字母a的Unicode编码 ascll码也为97,所以就英语来说ASCII和Unicode码是兼容的
    #61位97的十六进制
    char = u'\u0061'
    print(char)
    
    #获得字符的Unicode编码
    print('a的Unicode编码',ord('a'))
    

    现在就知道了两种指定为Unicode编码的方式,1、在字符或者字符串前面使用u
    2、直接使用\u + 编码点
    如a的编码是97转换为十六进制为61则a的Unicode编码就为\u0061

    相关文章

      网友评论

          本文标题:使用Unicode码进行文字处理

          本文链接:https://www.haomeiwen.com/subject/yqxecctx.html