python中的UnicodeAscii混合字符串

2024-09-29 19:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据库中有一个字符串,它存储为:

FB (\u30a8\u30a2\u30eb\u30fc)

当我从python代码加载这一行时,我无法正确格式化它。在

^{pr2}$

注意两个“\”这会弄乱前端的unicode字符 html不显示外来字符,而是显示为\u30a8\u30a2\u30eb\u30fc

但是,如果我加载append一些字符来将其转换为json格式并加载json,则会得到预期的结果。在

s = '{"a": "%s"}'%x
json.loads(s)['a']
#prints u'FB (\u30a8\u30a2\u30eb\u30fc)'

注意这个结果(在前端正确显示)和直接打印x(有额外的)之间的区别。 所以,尽管这个老套的解决方案有效,但我想要一个更干净的解决方案。 我经常使用x.encode('utf-8')等,但都还没用。在

谢谢你!在


Tags: 字符串代码数据库jsonfbhtmlunicode解决方案
2条回答
raw_string = '\u30a8\u30a2\u30eb\u30fc'
string = ''.join([unichr(int(r, 16)) for r in raw_string.split('\\u') if r])
print(string)

一个解决这个问题的方法,期待一个更好的答案。在

因为您已经有一个Unicode字符串,所以将其编码回ASCII并使用unicode_escape编解码器对其进行解码:

>>> s = u'FB (\\u30a8\\u30a2\\u30eb\\u30fc)'
>>> s
u'FB (\\u30a8\\u30a2\\u30eb\\u30fc)'
>>> print s
FB (\u30a8\u30a2\u30eb\u30fc)
>>> s.encode('ascii').decode('unicode_escape')
u'FB (\u30a8\u30a2\u30eb\u30fc)'
>>> print s.encode('ascii').decode('unicode_escape')
FB (エアルー)

相关问题 更多 >

    热门问题