如何在Python中拆分多语言行并获取Unicode十六进制值?
我尝试将这类行拆分为: 艾布伦什爱不忍释 “不,不,不,不” 这一行包含希伯来文、简体中文和英文 例如,如果我有一个元组T,我希望得到的元组是T=(希伯来语字符串、英语字符串、中文字符串) 问题是我不知道如何获得希伯来文字母的中文Unicode值。这两条线都不起作用:如何在Python中拆分多语言行并获取Unicode十六进制值?,python,unicode,cjk,right-to-left,Python,Unicode,Cjk,Right To Left,我尝试将这类行拆分为: 艾布伦什爱不忍释 “不,不,不,不” 这一行包含希伯来文、简体中文和英文 例如,如果我有一个元组T,我希望得到的元组是T=(希伯来语字符串、英语字符串、中文字符串) 问题是我不知道如何获得希伯来文字母的中文Unicode值。这两条线都不起作用: print ((unicode("释","utf-8")).encode("utf-8")) print ((unicode("א","utf-8")).encode("utf-8")) 我得到了这个错误: SyntaxE
print ((unicode("释","utf-8")).encode("utf-8"))
print ((unicode("א","utf-8")).encode("utf-8"))
我得到了这个错误:
SyntaxError:第9行的文件split_或.py中的非ASCII字符'\xe9',但未声明编码;有关详细信息,请参阅
在Python 2中,Unicode字符串常量需要以“u”字符开头,如:
print ((unicode(u"释","utf-8")).encode("utf-8"))
print ((unicode(u"א","utf-8")).encode("utf-8"))
在Python 3中,字符串常量默认为Unicode。在Python 2中,Unicode字符串常量需要以“u”字符开头,如:
print ((unicode(u"释","utf-8")).encode("utf-8"))
print ((unicode(u"א","utf-8")).encode("utf-8"))
在Python 3中,字符串常量默认为Unicode。在Python 2中,您需要打开指定如下编码的文件:
import codecs
f = codecs.open("myfile.txt","r",encoding="utf-8")
在Python3中,您可以将编码选项添加到任何open()调用中
这将保证文件被正确解码。请注意,这并不意味着您的打印调用将正常工作,这取决于许多事情(例如,请参阅,这只是一个开始);最好使用适当的调试器,或者输出到文件(将再次使用codecs.open()打开)
要获取实际代码点(即整数“值”),可以使用内置的ord():
如果你知道不同语言的范围,这就是你所需要的。有关范围,请参见或
否则,您可能希望使用unicodedata
查找内容,例如双向类别:
>>> unicodedata.bidirectional(u"£")
ET # 'E'uropean 'T'erminator
在Python 2中,您需要打开指定如下编码的文件:
import codecs
f = codecs.open("myfile.txt","r",encoding="utf-8")
在Python3中,您可以将编码选项添加到任何open()调用中
这将保证文件被正确解码。请注意,这并不意味着您的打印调用将正常工作,这取决于许多事情(例如,请参阅,这只是一个开始);最好使用适当的调试器,或者输出到文件(将再次使用codecs.open()打开)
要获取实际代码点(即整数“值”),可以使用内置的ord():
如果你知道不同语言的范围,这就是你所需要的。有关范围,请参见或
否则,您可能希望使用unicodedata
查找内容,例如双向类别:
>>> unicodedata.bidirectional(u"£")
ET # 'E'uropean 'T'erminator
在问题、标记或两者中指出您正在使用的Python版本(2.x或3.x)可能是值得的。您是否在文件的开头声明了任何编码,例如#coding:utf-8?您声明的问题是一个非常明显的错误,甚至包含指向文本的链接,该文本告诉您如何解决它。你为什么不看链接?因此,这是@lennartreegebro的副本。您在说什么?错误包括文本“请参阅以获取详细信息”。该链接准确地告诉您如何修复所遇到的错误。在问题、标记或两者中指出您正在使用的Python版本(2.x或3.x)可能是值得的。您是否在文件开头声明了任何编码,例如#coding:utf-8?您指出的问题是一个非常明显的错误,甚至包含指向文本的链接,该文本告诉您如何解决该问题。你为什么不看链接?因此,这是@lennartreegebro的副本。您在说什么?错误包括文本“请参阅以获取详细信息”。该链接准确地告诉您如何修复所遇到的错误。