如何使用多字节字符生成unicode字符串

时间:2015-07-22 21:25:46

标签: python unicode utf-8 internationalization

如何生成UTF-8字符序列,其中每个字符由多个字节表示,并且每个字符都是从具有多字节表示的所有字符集中选择的?

我正在尝试测试我的应用程序如何使用多字节字符处理UTF-8。谢谢。

1 个答案:

答案 0 :(得分:1)

ASCII范围之外的任何内容(U + 0000 - U + 007F)都会为您提供编码为多个UTF-8字节的Unicode字符。

随机生成:

import sys
import random

def random_nonascii_unicode(length):
    return u''.join(unichr(random.randint(0x80, sys.maxunicode)) for _ in range(length))

并根据需要编码为UTF-8:

>>> random_nonascii_unicode(10)
u'\ue82a\u62ac\ufe97\u97a3\u02c5\u4955\u1ad8\u9cf7\u8cba\u62e7'
>>> random_nonascii_unicode(10).encode('utf8')
'\xe3\x98\xb8\xe6\x91\x84\xe9\x99\xab\xeb\xb3\x8d\xef\xb7\x91\xe9\x9e\x9f\xe9\x99\xb8\xee\x9a\x9d\xec\x86\x87\xed\xa1\xb0'