在使用 Python 的过程中,你可能有时需要使用随机中文字符串,本文将介绍如何在 Python 中生成随机中文字符串。

在 Python 中可以使用如下几种方式生成随机中文字符串:

  • Python 中使用 GB2312 编码生成随机中文字符串
  • Python 中使用 Unicode 编码生成随机中文字符串

Python 中使用 GB2312 编码生成随机中文字符串

推荐使用该方法,该方法生成的随机中文字符串为简体中文,共 6763 个简体中文汉字。

GB2312 编码表中,其中汉字的编码范围为 B0A1-F7FE,第一字节(高字节) 0xB0-0xF7(对应区号:16-87),第二个字节(低字节) 0xA1-0xFE(对应位号:01-94),具体内容查看: GB2312 汉字国标码字符集编码表 (含 PDF 下载)

在 Python 中使用 GB2312 编码生成随机中文字符串,需要自定义函数,可以使用如下自定义函数生成随机中文字符串:

import random

# 随机生成一个中文字符
def generate_random_character_from_gb2312():
    high_byte = random.randint(0xb0, 0xf7)
    low_byte = random.randint(0xa1, 0xfe)
    code_bytes = f'{high_byte:x}{low_byte:x}'
    character = bytes.fromhex(code_bytes).decode('gb2312')
    return character

# 生成一个随机中文字符串
def generate_random_string_from_gb2312(length):
    return "".join(
        generate_random_character_from_gb2312()
        for x in range(length)
    )

解释说明

  • random.randint() 方法:从一个数字区间内随机选择一个整数值。
  • high_byte:高字节(第一字节)编码值
  • low_byte:低字节(第二字节)编码值
  • f'{high_byte:x}{low_byte:x}f'' 为字符串格式化,x 为十六进制格式化字符串

Python 中使用 Unicode 编码生成随机中文字符串

使用 Unicode 编码生成随机中文字符串,生成的随机中文字符串包含简体、繁体等字符,共 2 万多个汉字。

在 Unicode 编码中,中文字体的编码范围为 0x4E00 - 0x9FBF

在 Python 中使用 Unicode 编码生成随机中文字符串,需要自定义函数,可以使用如下自定义函数生成随机中文字符串:

import random

# 随机生成一个中文字符
def generate_random_character_from_unicode():
    code_value = random.randint(0x4E00, 0x9FBF)
    character = chr(code_value)
    return character

# 生成一个随机中文字符串
def generate_random_string_from_unicode(length):
    return "".join(
        generate_random_character_from_unicode()
        for x in range(length)
    )

解释说明

  • random.randint() 方法:从一个数字区间内随机选择一个整数值。
  • chr():内置函数,根据 Unicode 编码值生成一个 Unicode 字符

结语

在本文中介绍了如何在 Python 中生成随机中文字符串,介绍了两种方式生成随机中文字符串,分别是:在 Python 中使用 GB2312 编码生成随机中文字符串,Python 中使用使用 Unicode 编码生成随机中文字符串。