判断字符是否为中文

本文详细解析了ASCII、Unicode和UTF-8字符编码的区别与联系,并提供了Python中字符转换的常用函数,包括ASCII值、Unicode编码转换及进制转换方法。

UNICODE与UTF-8的联系

字符编码笔记:ASCII,Unicode和UTF-8

    http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

判断字符是否为中文

采用unicode编码格式下:

\u4e00-\u9fa5可能是用来判断是不是中文的一个条件。 \u4E00 -- \u9FA5

 def __call__(self,value):
        if not all([True if i >= u'\u4e00' and i <= u'\u9fa5' else False for i in value]):
            raise ValidationError(self.message, code=self.code)

英文字母ASCII值

ascii值图形
48 - 57'0' - '9'
65 - 90'A’- 'Z'
97 - 122'a' - 'z'

 

python中字符转换常见函数:

进制转换

int(x) # 字符串/整数(以10为基底,即字符串包含的字符都为‘0’-‘9’) --> 十进制整数
       # int('10') --> 10
int(x, base) # 以base为基底的字符串 --> 十进制整数
             # base取值为[2 - 36] a-z/A-Z表示10-35
             # if base = 2, 则字符串可包含'0b'/'0B'         int('0b11', 2) --> 2
             #           8              '0o'/'0O'/'0'     int('0O75', 8) --> 61
             #           16             '0x'/'0X'         int('0xA5', 16) --> 165


bin() # 整数 --> 其二进制字符串(以‘0b’开头),如果输入不是int对象,则它必须返回该对象的__index__()方法
      # bin(25) --> '0b11001'

oct() # 整数 --> 其八进制字符串(以‘0o’开头)
      # oct(25) --> '0o31'

hex() # 整数 --> 其十六进制字符串(以‘0x’开头)
      # hex(25) --> '0x19'
      

字符和unicode编码转换

ord()  # 如果参数为单字符,则返回ascii表该字符对应的整数
       # 如果参数为形如 u'\u0061', 则返回该unicode字符的字节值
       # ord('a') --> 97
       # ord(u'\u0061') --> 97

chr(i) # 整数(取值为[0,255]) --> 单字字符,该字符的ASCII码为整数i
       # chr(97) --> 'a'

unichr(i) # 整数 --> Unicode码为整数i的Unicode字符 (python3中无此函数)
          # unichr(97) --> u'a'

 

转载于:https://my.oschina.net/toooooyoung/blog/685748

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值