如何在python中打印像♟这样的字符

问题描述 投票:-1回答:1

我试图在python 2.7中打印一个干净的棋盘,它使用独特的字符,如♟。

我试过简单地替换字符串中的值("g".replace(g, ♟)),但它被更改为'\xe2\x80\xa6'。如果我将该字符放入在线ASCII转换器,它将返回“226 153 159”

python ascii non-ascii-characters
1个回答
2
投票

是一个unicode角色。在python 2中,str保存ascii字符串或二进制数据,而unicode保存unicode字符串。当您执行"♟"时,您将获得unicode字符串的二进制编码版本。这种编码取决于你用来输入它的编辑器/控制台。它常见(我认为首选)使用UTF-8编码字符串,但你可能会发现Windows编辑器喜欢little-endian UTF-16字符串。

无论哪种方式,您都希望尽可能将字符串写为unicode。您可以在strunicode之间进行一些混合匹配,但要确保ASCII代码集之外的任何内容都是从头开始的unicode。

Python可以在文件的前面获取编码提示。因此,假设您使用UTF-8编辑器,您可以这样做

!@/usr/bin/env python
# -*- coding: utf-8 -*-

chess_piece = u"♟"
print u"g".replace(u"g", chess_piece)
© www.soinside.com 2019 - 2024. All rights reserved.