You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中插入Unicode左半黑星(U+2BE8)字符?

解决左半黑星(U+2BE8)显示异常及UTF-16解码问题

一、修复UTF-16解码错误

你当前的UTF-16解码代码异常,核心原因是字节顺序不匹配且缺少字节序标记(BOM):

  • U+2605(黑星)的UTF-16小端字节序为\x05\x26,但Python默认解码UTF-16时,会优先通过BOM判断字节序,无BOM则默认按大端处理,导致解码错乱。
  • 正确写法有两种:
    1. 显式指定小端字节序:
    print((b'black star: \x05\x26').decode("utf-16-le"))
    
    1. 追加UTF-16小端BOM(\xff\xfe):
    print((b'\xff\xfe' + b'black star: \x05\x26').decode("utf-16"))
    

二、左半黑星(U+2BE8)显示异常的解决

你遇到的“未识别字符”问题,本质是系统/文件查看工具的字体不支持Unicode 11.0新增的U+2BE8字符,而非代码写入错误。可按以下步骤处理:

1. 验证字符是否正确生成

先确认代码是否真的输出了目标字符:

half_star = '\u2BE8'
print(f'half black star: {half_star}')
print(f'Unicode码点: {ord(half_star)}')  # 正常输出应为11240(U+2BE8的十进制值)

若ord()输出为11240,说明字符本身正确,仅显示环节有问题。

2. 更换支持该字符的字体

U+2BE8是2018年Unicode 11.0新增字符,多数系统默认字体(如Windows宋体、Mac苹方)未包含其字形,需更换为支持新Unicode版本的字体:

  • 推荐字体:Noto Sans Symbols 2、Segoe UI Emoji、Twemoji、Symbola
  • 操作方式:
    • 控制台:在终端设置中切换为上述字体
    • TXT文件:打开时手动选择支持的字体,或设置文件默认使用该字体

3. 简化字符输出方式

避免手动拼接UTF-8字节,直接用Unicode转义序列输出更可靠:

# 用Unicode转义序列直接输出
print('half black star: \u2BE8')
# 或用chr()函数调用码点
print(f'half black star: {chr(0x2BE8)}')

三、写入TXT文件的注意事项

写入文件时务必指定UTF-8编码,避免编码转换丢失字符:

with open('stars.txt', 'w', encoding='utf-8') as f:
    f.write(f'黑星: \u2605\n白星: \u2606\n左半黑星: \u2BE8')

打开文件时同样需使用UTF-8编码,并搭配支持的字体查看。

内容的提问来源于stack exchange,提问作者BlondCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:22:36