如何在Python中拆分多语言行并获得Unicode十六进制值?

2024-09-29 19:33:17 发布

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

我试着在Python中拆分这类行:

aiburenshi 爱不忍释 "לא מסוגל להינתק, לא יכול להיפרד מדבר מרוב חיבתו אליו"

这一行包含希伯来语、简体中文和英语。在

例如,如果我有一个元组T,我希望得到的元组是T=(希伯来语字符串、英语字符串、中文字符串)。在

问题是我不知道如何得到希伯来字母的中文Unicode值。这两条线都不起作用:

print ((unicode("释","utf-8")).encode("utf-8"))
print ((unicode("א","utf-8")).encode("utf-8"))

我得到一个错误:

SyntaxError: Non-ASCII character '\xe9' in file split_or.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details


Tags: 字符串错误字母asciiunicodeutfencode元组
2条回答

在Python2中,Unicode字符串常量需要以“u”字符开头,如:

print ((unicode(u"释","utf-8")).encode("utf-8"))
print ((unicode(u"א","utf-8")).encode("utf-8"))

在python3中,字符串常量默认为Unicode。在

在Python 2中,需要打开指定如下编码的文件:

import codecs
f = codecs.open("myfile.txt","r",encoding="utf-8") 

在Python3中,您只需将encoding选项添加到任何open()调用中。在

这将保证文件被正确解码。请注意,这并不意味着您的print调用将正常工作,这取决于许多事情(请参见示例http://www.pycs.net/users/0000323/stories/14.html),这只是一个开始);最好使用适当的调试器,或者输出到文件(将再次使用编解码器.打开() ). 在

要获得实际的代码点(即整数“value”),可以使用内置的ord():

^{pr2}$

如果你知道不同语言的范围,那就是你所需要的。有关范围,请参见this pagethis page。在

否则,您可能需要使用unicodedata来查找资料,例如双向类别:

>>> unicodedata.bidirectional(u"£")
ET  # 'E'uropean 'T'erminator

相关问题 更多 >

    热门问题