初めまして まさえと申します。よろしくお願いします。 先日からMeCabを使わせていただいています。 ユーザー辞書を使おうとしていますが、mecabrcに記載しても、libmecabを-uオプション付きで 呼び出し時もエラーになるため困っています。 まず、 mecabrc にユーザー辞書を記載してコマンドプロンプトで D:\Mytool\mecab-0.996>mecab -D filename: C:\Program Files (x86)\MeCab\etc\..\dic\ipadic\sys.dic version: 102 charset: shift-jis type: 0 size: 2739849 left size: 1316 right size: 1316 filename: C:\Program Files (x86)\MeCab\dic\ipadic\fantasy.dic version: 102 charset: shift-jis type: 1 size: 309 left size: 1316 right size: 1316 と表示されました。charsetはshift-jis で、コマンドプロンプトからはユーザ辞書は 正常?に認識されているようにみえます。テスト解析していないので・・・ mecabrcにユーザー辞書を記載したままでlibmecabを呼び出しても エラーになるため、ユーザー辞書の記載をコメントアウトして作成中のアプリで if (( model = mecab_model_new2( "" )) == NULL ) // if (( model = mecab_model_new2( "-u C:\\Program Files (x86)\\MeCab\\dic\\ipadic\\fantasy.dic" )) == NULL ) { CString errorMessage = ( LPCTSTR )MeCab::getLastError(); AfxMessageBox( errorMessage ); // 上の-uオプション付きではエラーになり、このまま表示しても // 文字化けなのでerrorMessage をみると //+ m_pszData "viterbi.cpp(50) [tokenizer_->open(param)] tokenizer.cpp(130) [sysdic->isCompatible(*d)] // incompatible dictionary: C:\Program Files (x86)\MeCab\dic\ipadic\fantasy.dic " wchar_t * return ( -1 ); } if (( mecab = mecab_model_new_tagger( model )) == NULL ) { return ( -1 ); } const mecab_dictionary_info_t *pDict = mecab_dictionary_info( mecab ); 辞書情報を覗くと - pDict 0x000000000174ca60 {filename=0x000000000174c980 "C:\Program Files (x86)\MeCab\etc\..\dic\ipadic\sys.dic" charset=0x0000000008d20028 "utf-8" size=2739849 ...} const mecab_dictionary_info_t * + filename 0x000000000174c980 "C:\Program Files (x86)\MeCab\etc\..\dic\ipadic\sys.dic" const char * + charset 0x0000000008d20028 "utf-8" const char * size 2739849 unsigned int type 0 int lsize 1316 unsigned int rsize 1316 unsigned int version 102 unsigned short + next 0x0000000000000000 {filename=??? charset=??? size=??? ...} mecab_dictionary_info_t * Visual stadioでpDict の中身はutf-8となっていました。 mecabをコマンドプロンプトで実行した際と、libmecabを呼び出した際でシステム辞書の文字セットが 変わるのでしょうか?バイナリーパッケージの辞書の真の文字セットは何なんでしょうか?よろしくお願いします。 コマンドプロンプトでの文字セットが合っていたため、かなり悩んで、辞書情報を観てみると違っていました。