我的标题术语可能不正确,可能是我无法从网站上找到这个简单内容的原因。
我有一个字符串变量列表。我如何实际连接它们并在Python中输出一个真正的unicode语句?
base = ['280', '281', '282', '283']
end = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
unicodes = [u''.join(['\u', j, i]) for j in base for i in end]
for u in unicodes:
print u
我只会获得像'\ u280F'这样的字符串而不是真正的字符。但如果我这样做:
print u'\u280F'
显示正确的符号,即:⠏
我确信有一种更优雅的方式可以获得从u2800到u283F的一系列符号......
答案 0 :(得分:5)
将字符串转换为整数(使用int
与base
16),使用unichr
(chr
如果您正在使用Python 3.x)将数字转换为unicode对象。
>>> int('280' + 'F', 16) # => 0x280F, 16: hexadecimal
10255
>>> unichr(int('280' + 'F', 16)) # to unicode object
u'\u280f'
>>> print unichr(int('280' + 'F', 16))
⠏
base = ['280', '281', '282', '283']
end = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
unicodes = [unichr(int(j + i, 16)) for j in base for i in end]
for u in unicodes:
print u
答案 1 :(得分:0)
如果您遇到unicodes
输入;您可以使用unicode-escape
编解码器来获取Unicode(b'\\u2800'.decode('unicode-escape') == u'\u2800'
):
>>> for escaped in unicodes: print escaped.decode('unicode-escape')
...
⠽
⠾
⠿
否则,直接生成整数范围:
for ordinal in range(0x2800, 0x283f + 1):
print unichr(ordinal)
在这种情况下它产生相同的输出。