[初心者注意報] C++でmecab使うと文字化けします

| コメント(0) | トラックバック(0)
ただ単純にC++でmecabでパースした文字列を表示したいのですが、文字化けします。なんでなんで?Perlに関してはえらそーに語る事もありますが、C++初心者っす・・・誰か教えてください

#include #include using std::cout; using std::endl; using std::hex; int main(int argc, char **argv) { char input[1024] = "もももすももももものうち"; char *args[] = { "", "-Owakati" }; const char *parsed; MeCab::Tagger *t = MeCab::createTagger(2, args); parsed = t->parse(input, strlen(input)); cout << "original input = " << input <<< "parsed string = " << parsed << strlen(input); i++) { cout << "input[" << i << "] = " << hex << (unsigned int) input[i] << endl; cout << "parsed[" << i << "] = " << hex << (unsigned int) parsed[i] << endl; } delete t; return 0; }
最初のoriginal inputとparsed stringのところでcoutが化けるのでバイト単位でcoutしてみたんだけど、これだとparsedのほうがほとんどのところで最後の1バイトが抜けてる感じ。何が間違ってるんでしょうか・・・

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ