

[MeCabをMacにインストールする手順](https://qiita.com/nkjm/items/913584c00af199794257)

上記リンク先の手順通りにMeCabをインストールして、pip3 install mecab-python3をpython3で

[code]

    import MeCab
    mecab = MeCab.Tagger("-Ochasen")
    print(mecab.parse("ダックスフンドが歩いている。"))
    
[/code]

としたところ`'utf-8' codec can't decode bytes in
position`というエラーが出てしまいました。どなたかご教授お願い致します。

[code]

    [~] mecab -D                                                                                                          13:23:03
    filename:   /usr/local/mecab/lib/mecab/dic/ipadic/sys.dic
    version:    102
    charset:    utf8
    type:   0
    size:   392126
    left size:  1316
    right size: 1316
    
    [~] mecab -P                                                                                                          13:24:06
    bos-feature: BOS/EOS,*,*,*,*,*,*,*,*
    bos-format:
    config-charset: EUC-JP
    cost-factor: 700
    dicdir: /usr/local/mecab/lib/mecab/dic/ipadic
    dump-config: 1
    eon-format:
    eos-format: EOS\n
    eos-format-chasen: EOS\n
    eos-format-chasen2: EOS\n
    eos-format-simple: EOS\n
    eos-format-yomi: \n
    eval-size: 8
    lattice-level: 0
    max-grouping-size: 24
    nbest: 1
    node-format: %m\t%H\n
    node-format-chasen: %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
    node-format-chasen2: %M\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
    node-format-simple: %m\t%F-[0,1,2,3]\n
    node-format-yomi: %pS%f[7]
    theta: 0.75
    unk-eval-size: 4
    unk-format: %m\t%H\n
    unk-format-chasen: %m\t%m\t%m\t%F-[0,1,2,3]\t\t\n
    unk-format-chasen2: %M\t%m\t%m\t%F-[0,1,2,3]\t\t\n
    unk-format-yomi: %M
    
    [~] echo ダックスフンドが歩いている。 |mecab -Ochasen                                                                 13:24:13
    ダックスフンド ダックスフンド ダックスフンド 名詞-一般
    が   ガ   が   助詞-格助詞-一般
    歩い  アルイ 歩く  動詞-自立   五段・カ行イ音便    連用タ接続
    て   テ   て   助詞-接続助詞
    いる  イル  いる  動詞-非自立  一段  基本形
    。   。   。   記号-句点
    EOS
    
[/code]

[code]

    import sys 
    sys.getdefaultencoding() 
    'utf-8'
    
[/code]

となっていました。


CC BY-SA 3.0
2018-03-30T17:37:09.977
42804
2018-03-31T05:43:15.357
2018-03-31T05:29:43.370
3054
27714
question
python python3 mecab
MeCabをpython3で使いたいが 'utf-8' codec can't decode 'utf-8' codec can't decodeというエラーが出てしまう


### 文字コードの不一致

Python3のソースコードのデフォルトエンコーディングはUTF-8で、[文字列(`str`)はUnicodeを保持します](https://docs.python.jp/3/howto/unicode.html#python-
s-unicode-support)。  
MeCabの辞書の（おそらく質問者さんが使っているであろう）`ipadic`
はデフォルトでは[EUCで作られます](http://taku910.github.io/mecab/#charset)。  
~~この不一致がエラーの原因です。~~ （追記: 違っていました。質問者さんの辞書はUTF-8とのこと）  
`./configure --with-charset=utf8` でUTF-8の辞書を構築するのが、最も簡単な解決方法だと思います。

### 辞書の文字コードの確認

`mecab` コマンド はオプション `-D, --dictionary-info` で辞書の情報を出力します。

[code]

    $ mecab -D
    
[/code]

文字コードがUTF-8であれば `charset: UTF-8` のように出力されます。  
Python側でも以下のように確認できるようです。

[code]

    mecab = MeCab.Tagger("-Ochasen")
    info = mecab.dictionary_info()
    print(info.charset)
    
[/code]


CC BY-SA 3.0
2018-03-30T18:56:24.407
42805
2018-03-31T05:43:15.357
2018-03-31T05:43:15.357
3054
3054
42804
answer