主页

索引

模块索引

搜索页面

Unicode

  • u 加上4位16进制的数字表示Unicode 中的 256 个基本语言,前两位为类别,后两位为索引

  • U 加上8位16进制的数字表示超出上述范围內的字符,最左一位须为0,N{name}用来指定字符名称

  • 完整清单 [1]

转换函数

unicodedata模块提供了下面两个方向的转换函数:

lookup() - 接受不区分大小写的标准名称,返回一個Unicode的字符;
name() - 接受一个的Unicode字符,返回大写形式的名称。

实例:

def unicode_test(value):
    import unicodedata
    name = unicodedata.name(value)
    value2 = unicodedata.lookup(name)
    print('value="%s", name="%s", value2="%s"' % (value, name, value2))

unicode_test('A')       # value="A", name="LATIN CAPITAL LETTER A", value2="A"
unicode_test('$')       # value="$", name="DOLLAR SIGN", value2="$"
unicode_test('\u00a2')  # value="¢", name="CENT SIGN", value2="¢"
unicode_test('\u20ac')  # value="€", name="EURO SIGN", value2="€"
unicode_test('\u2603')  # value="☃", name="SNOWMAN", value2="☃"


# 想知道é这个符号的编码
place = 'café'
print(place)
unicode_test('é')       # value="é", name="LATIN SMALL LETTER E WITH ACUTE", value2="é"
print('é'.encode('unicode-escape'))   # b'\\xe9'
unicode_test('\u00e9')  # value="é", name="LATIN SMALL LETTER E WITH ACUTE", value2="é"

使用utf-8进行编码与解码:

将字符串编码为字节
将字节解码为字符串

使用encode()来编码字符串成我们看得懂的:

编码

说明

‘ascii’

ASCII 编码

‘utf-8’

最常用的编码

‘latin-1’

ISO 8859-1 编码

‘cp-1252’

Windows 常用编码

‘unicode-escape’

Python 中 Unicode 的文本格式, uxxxx 或者 Uxxxxxxxx

#编码:

snowman = '\u2603'
print(snowman)          # ☃
print(snowman.encode('unicode-escape'))   # b'\\u2603'
print(len(snowman))           # 1
ds = snowman.encode('utf-8')

print(len(ds))      # 3
print(ds)           # b'\xe2\x98\x83'
print('☃')          # ☃

#解码:

place = 'caf\u00e9'
print(place)          # café

place_bytes = place.encode('utf-8')
print(place_bytes)    # b'caf\xc3\xa9'

place2 = place_bytes.decode('utf-8')
print(place2)         # café

主页

索引

模块索引

搜索页面