読者です 読者をやめる 読者になる 読者になる

Perlexの文字コードが変な件について

前にも何度か紹介したが,lexiconのperlexは屈折辞の展開がされた後は文字化けがおきている.

前の記事では,後でpythonスクリプトで修正する方法をとっていたが,特にqとŕで無理があるやり方だった.しかも,その後でまた変な文字化けを見つけたし...(要はキリがない.と言いたい)

そこで,根本から直すべく,MakeファイルとPerlのスクリプトを洗ってみることにした.

まずはmakeを実行する時に,

make -n

で変数が展開された状態でmakeファイルをチェックする.
そして,文字化けが発生した過程を少しづつチェックしていく.

すると,*.fファイルが生成された後に,*.lexファイルを生成される直前に

	iconv -f UTF-8 -t $(LEX_ENCODING) 

という記述が764行目に発見された.
これは,つまりutf-8を他の文字コードに書き換えるということ.LEX_ENCODINGの中身を調べてみると...latin-2に書き換えられていることが判明した.

なので,この行は削除.

さらにその直前にはPRERECODINGっていう記述があり,この変数が指している内容は
PRERECODING = | perl -pe "s/ā/â/g; s/ħ/ł/g; s/ẓ/ż/g; s/⎖/˛/g; s/ġ/¤/g;"
である.
まったくもって無用な長物なので,これも削除.

これで文字化けのないlexファイルの生成が可能になる.

なお,このデバッグ(?)にあたっては研究室の友人に手伝ってもらった.本当に頭があがらない.