Python:解析查询返回字符串的Unicode编码(MeCab)

2024-03-28 16:38:33 发布

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

我正在尝试使用一个名为MeCab的程序,它对日语文本进行语法分析。我遇到的问题是它返回一个字节字符串,如果我试图打印它,它会为几乎所有字符打印问号。但是,如果我尝试使用.decode,它会抛出一个错误。这是我的代码:

#!/usr/bin/python
# -*- coding:utf-8 -*-

import MeCab
tagger = MeCab.Tagger("-Owakati")
text = 'MeCabで遊んでみよう!'

print text
result = tagger.parse(text)
print result

result = unicode(result, 'utf-8')
print result

这是我的输出:

^{pr2}$

而且,我的终端能够正确显示日语字符。例如,print '日本語'工作得非常好。在

有什么想法吗?在


Tags: 字符串代码text文本程序字节错误result
2条回答

看起来你认为MeCab返回UTF8字符串的假设是错误的。所以,在你转换成unicode时,你必须使用其他一些编码(例如iso2022_jp,编码的精确选择取决于MeCab的内部结构)。在

默认情况下,MeCab不返回UTF8。以下是以下链接的引文(通过谷歌翻译):

http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#charset

Unless otherwise specified, euc is used. If you would like to use the utf8 or shift-jis, change the charset with configure options dictionary, please rebuild the dictionary. Now, and shift-jis, dictionary of utf8 is created.

尝试result = tagger.parse(text).decode('euc-jp')。在

相关问题 更多 >