ファイルから読みだしたものはwchar_t[]で管理していて、kakasiに渡すときはEUC化(unsigned short[])したものをchar[]と見立てて渡す…MeCabの場合はmulti-byte stringなchar[]に変換して渡す…得られた結果はその逆で。
変換候補と読みのチェックをwchar_t[](Unicode)←→unsigned short[](EUC)変換時に掛けているけど、これをどう再現するかが頭の痛いところ。MeCabの読みは平仮名ではなく片仮名なので結局変換処理を入れる必要があるから…ここで引っかけることはできそうなんだけど。
wchar_t(Unicode)→mbs(UTF-8)/MeCab→wchar_t(Unicode)/カナ→wchar_t(Unicode)/かな
kakasi/EUC版の場合は候補側と読み側の両方でチェックを掛けられたけど、MeCab/UTF-8版だと読み側でしかチェック掛けられないか…?
候補のチェックをkakasi/EUC版と同様にするのであれば、結局「候補の文字列をEUCへ変換可能かどうか」というチェックになってしまって、Unicode→EUCテーブルを外せなくなるという問題を抱えてしまう(せっかくUTF-8化するならそんなテーブルは外したい)。