このPerlスクリプト
は、拙作 Nintendo DS で漢字を入力するLuaスクリプト (kinput.lua)
の辞書ファイル tankanji.dic とテキストデータの相互変換を行うものです。
上記リンクからダウンロードし、解凍(ZIP)してお使い下さい。
Perlインタプリタ無しでも動く
実行形式版(.exe)
も用意しました。
なお本文の説明はPerlスクリプト(.pl)の使用を前提としています。
tankanji.dic の内容をテキスト出力します。
カレントフォルダ(jishoextract.pl と同じ場所)に tankanji.dic を置き、コマンドプロンプトで 引数に出力先テキストファイル名 を指定してスクリプトを実行します。
例:
> perl jishoextract.pl outputfile.txt
実行後、テキストファイル に辞書の内容全部がUTF-8で格納されます。
テキストファイルの内容に基づいて tankanji.dic を構築します。
引数に 入力元テキストファイル名 を指定してスクリプトを実行します。
例:
> perl jishomake.pl inputfile.txt
入力元テキストファイル名
は空白で区切って複数指定する事が可能です。
実行後、カレントフォルダに tankanji.dic が生成されます。
エラーがあった場合は標準エラー出力に表示されます。
jishoextract.pl で出力されたものがそのまま入力テキストファイルの形式となります。
読み1 タブ 漢字1
読み2 タブ 漢字2
…
と、各行に読み と漢字 の対を
タブ 1文字で区切って記述してゆきます。
漢字コードはUTF-8(BOM無し)として下さい。
jishoextract.pl と jishomake.pl はLinuxでも動作しますが、 システムの漢字コードがシフトJISでない場合 (多くの場合はシフトJISでないと思います)は、スクリプト冒頭の
binmode STDOUT, ':raw:encoding(cp932)';
binmode STDERR, ':raw:encoding(cp932)';
binmode STDIN, ':raw:encoding(cp932)';
という箇所を書き直して下さい。
(例: EUCにする場合)
binmode STDOUT, ':raw:encoding(euc-jp)';
binmode STDERR, ':raw:encoding(euc-jp)';
binmode STDIN, ':raw:encoding(euc-jp)';
なおスクリプトの漢字コードはUTF-8のままとして下さい。
他の漢字コードでセーブし直してしまうと正しく動きません。