python随机生成中文字符串_用Python生成随机UTF-8字符串
下面是一個示例函數(shù),它可能創(chuàng)建一個隨機的格式良好的UTF-8序列,如Unicode 5.0.0的表3-7所定義:#!/usr/bin/env python3.1
# From Table 3–7 of the Unicode Standard 5.0.0
import random
def byte_range(first, last):
return list(range(first, last+1))
first_values = byte_range(0x00, 0x7F) + byte_range(0xC2, 0xF4)
trailing_values = byte_range(0x80, 0xBF)
def random_utf8_seq():
first = random.choice(first_values)
if first <= 0x7F:
return bytes([first])
elif first <= 0xDF:
return bytes([first, random.choice(trailing_values)])
elif first == 0xE0:
return bytes([first, random.choice(byte_range(0xA0, 0xBF)), random.choice(trailing_values)])
elif first == 0xED:
return bytes([first, random.choice(byte_range(0x80, 0x9F)), random.choice(trailing_values)])
elif first <= 0xEF:
return bytes([first, random.choice(trailing_values), random.choice(trailing_values)])
elif first == 0xF0:
return bytes([first, random.choice(byte_range(0x90, 0xBF)), random.choice(trailing_values), random.choice(trailing_values)])
elif first <= 0xF3:
return bytes([first, random.choice(trailing_values), random.choice(trailing_values), random.choice(trailing_values)])
elif first == 0xF4:
return bytes([first, random.choice(byte_range(0x80, 0x8F)), random.choice(trailing_values), random.choice(trailing_values)])
print("".join(str(random_utf8_seq(), "utf8") for i in range(10)))
由于Unicode標準的龐大性,我無法對此進行徹底的測試。還要注意字符的分布并不均勻(但是序列中的每個字節(jié)都是)。
總結(jié)
以上是生活随笔為你收集整理的python随机生成中文字符串_用Python生成随机UTF-8字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中pos的用法_Python
- 下一篇: python爬虫挖掘平台搭建_一篇非常棒