为什么输出不同?(如何打印(s1)输出日文)

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

我正在打印一些日文字符串的字符串,为什么print(s1)直接输出日文的unicode,而不是日语与s2相同?如何让s1输出“顾客”?谢谢。

s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\\','\\u')
print(s1)
s2 = '\u9867\u5BA2'
print('\u9867\u5BA2')
print(s2)

我期望输出如下:

顧客
顧客
顧客

但实际产量如下:

\u9867\u5BA2
顧客
顧客
python-3.x python-unicode
1个回答
0
投票

\u中的'\u9867\u5BA2'只是一个用于unicode字符的Python表示法,而不是文字\u,所以你不能只是建立一个字符串\u以及一些代码,并期望它们代表一个unicode字符。

您可以将字符串编码为字节,然后使用unicode_escape编码对其进行解码,使其成为实际的unicode字符串:

s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\\','\\u').encode().decode('unicode_escape')
print(s1)

这输出:

顧客
© www.soinside.com 2019 - 2024. All rights reserved.