On 06/29/2013 07:29 AM, [email protected] wrote:
Hi,
Using Python 2.7 on Linux, presumably? It'd be better to be explicit.
I am trying to use a program called MeCab, which does syntax analysis on
Japanese text. The problem I am having is that it returns a byte string and if
I try to print it, it prints question marks for almost all characters. However,
if I try to use .decide, it throws an error. Here is my code:
What do the MeCab docs say the tagger.parse byte string represents?
Maybe it's not text at all. But surely it's not utf-8.
#!/usr/bin/python
# -*- coding:utf-8 -*-
import MeCab
tagger = MeCab.Tagger("-Owakati")
text = 'MeCabで遊んでみよう!'
result = tagger.parse(text)
print result
result = result.decode('utf-8')
print result
And here is the output:
MeCab �� �� ��んで�� �� ��う!
Traceback (most recent call last):
File "test.py", line 11, in <module>
result = result.decode('utf-8')
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 6-7: invalid
continuation byte
------------------
(program exited with code: 1)
Press return to continue
Also my terminal is able to display Japanese characters properly. For example
print '日本語' works perfectly fine.
Are your terminal and your text editor using utf-8, or something else?
Can you put your print statement in the source file above, and it'll
also work fine?
Are you actually running it from the terminal, or some GUI? I notice
you get "(program exited with code: 1)" and "Press return to continue".
Neither of those is standard terminal fare on any OS I know of.
--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list