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'