【发布时间】:2021-06-15 16:45:13
【问题描述】:
我想遍历 Unicode 字符串中的每个字符,我正在这样做:
import unicodedata
import json
words = ['\\u05d5\\u05b7\\u05d9\\u05b0\\u05d3\\u05b7\\u05d1\\u05bc\\u05b5\\u05a3\\u05e8', '\\u05d9\\u05b0\\u05d4\\u05b9\\u05d5\\u05b8\\u0594\\u05d4', '\\u05d0\\u05b6\\u05dc\\u05be\\u05de\\u05b9\\u05e9\\u05c1\\u05b6\\u05a5\\u05d4', '\\u05d5\\u05b0\\u05d0\\u05b6\\u05bd\\u05dc\\u05be\\u05d0\\u05b7\\u05d4\\u05b2\\u05e8\\u05b9\\u0596\\u05df', '\\u05dc\\u05b5\\u05d0\\u05de\\u05b9\\u05bd\\u05e8\\u05c3']
for word in words:
print(word)
print(type(word))
for idx, char in enumerate(word):
char_name = unicodedata.name(char)
print(char_name + ": " + char + " : " + json.dumps(char)) # comment out
但是输出是这样的:
REVERSE SOLIDUS: \ : "\\"
LATIN SMALL LETTER U: u : "u"
DIGIT ZERO: 0 : "0"
DIGIT FIVE: 5 : "5"
LATIN SMALL LETTER D: d : "d"
DIGIT FIVE: 5 : "5"
REVERSE SOLIDUS: \ : "\\"
LATIN SMALL LETTER U: u : "u"
如何遍历字符串中的 Unicode 字符?
我想我需要将 \\u 转换为 \u 但不知道该怎么做:
print(word.replace('\\u', '\u'))
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
【问题讨论】:
-
我不是。请仔细阅读问题。
-
这根本不是我运行代码时得到的输出:Try it online!
-
你有一个字符串,其内容看起来像 Python
str文字,而不是str值'וַיְדַבֵּ֣ר'。 -
您能否检查以确保您粘贴的代码正是您正在运行的代码?否则,请将提供此输出的代码复制粘贴到一个块中,以便我们对其进行测试/调试。
-
@hyper-neutrino 我的错 - 请参阅上面的修改代码