• Python的中文处理


    一、使用中文字符
    在python源码中如果使用了中文字符,运行时会有错误,解决的办法是在源码的开头部分加入字符编码的声明,下面是一个例子:
    #!/usr/bin/env python
    # -*- coding: cp936 -*-
    Python Tutorial中指出,python的源文件可以编码ASCII以外的字符集,最好的做法是在#!行后面用一个特殊的注释行来定义字符集:
    # -*- coding: encoding -*-
    根据这个声明,Python会尝试将文件中的字符编码转为encoding编码,并且,它尽可能的将指定地编码直接写成Unicode文本。
    注意,coding:encoding只是告诉Python文件使用了encoding格式的编码,但是编辑器可能会以自己的方式存储.py文件,因此最后文件保存的时候还需要编码中选指定的ecoding才行。
    二、中文字符的存储
    >>> a='中文'
    >>> a
    'xd6xd0xcexc4'
    >>> b=u'中文'
    >>> b
    u'u4e2du6587'
    >>> b.encode('gbk')
    'xd6xd0xcexc4'
    >>>


    更进一步:
    >>> len(a)
    4
    >>> len(b)
    2
    >>>


    unicode是字符流,gbk,utf-8等是字节流

    >>> a=u'中文'.encode('gb2312')
    >>> a
    'xd6xd0xcexc4'
    >>> a=u'中文'.encode('utf-8')
    >>> a
    'xe4xb8xadxe6x96x87'


    encode是将字符流转成了字节流
    >>> a=u'中文'.encode('utf-8').decode('utf-8')
    >>> a
    u'u4e2du6587'


    decode是将字节流解码,转成字符流。
  • 相关阅读:
    5 粘包现象与解决方案
    4 Socket代码实例
    协程与多路io复用epool关系
    基于selector的socket并发
    基于select类型多路IO复用,实现简单socket并发
    协程实现多并发socket,跟NGINX一样
    利用协程实现简单爬虫
    协程
    进程池pool
    进程锁 Lock
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144492.html
Copyright © 2020-2023  润新知