为什么输出不同?(如何使 print(s1) 输出日文)
Why the outputs are different?(how to make print(s1) to output Japanese)
我正在打印一些日语的 unicode 字符串,
为什么 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
顧客
顧客
'\u9867\u5BA2'
中的 \u
只是 unicode 字符的 Python 符号,而不是文字 \
和 u
,所以你可以' t 只是构建一串文字 \
和 u
以及一些代码,并期望它们代表一个 unicode 字符。
您可以将字符串编码为字节,然后使用 unicode_escape
编码对其进行解码,使其成为实际的 unicode 字符串:
s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\','\u').encode().decode('unicode_escape')
print(s1)
这输出:
顧客
我正在打印一些日语的 unicode 字符串, 为什么 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
顧客
顧客
'\u9867\u5BA2'
中的 \u
只是 unicode 字符的 Python 符号,而不是文字 \
和 u
,所以你可以' t 只是构建一串文字 \
和 u
以及一些代码,并期望它们代表一个 unicode 字符。
您可以将字符串编码为字节,然后使用 unicode_escape
编码对其进行解码,使其成为实际的 unicode 字符串:
s_before = r'\(9867)\(5BA2)'
s1 = s_before.replace('(','').replace(')','').replace('\','\u').encode().decode('unicode_escape')
print(s1)
这输出:
顧客