hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

「ランダムハウス英語辞典Toolkit」をEBStudio2で変換する場合の注意点

「ランダムハウス英語辞典Toolkit」で作成したHTMLが、EBStudio2では文字化けするという報告があった。旧EBStudioとは互換性を保っているはずなので、調査したところ、EBStudio2の新機能の「UnicodeからEPWING外字に自動登録する」が悪さをしていることがわかった。

ランダムハウス英語辞典Toolkit」では、文字の字下げを表現するために、EPWINGの制御文字(0x1F09)を直接16進コードで表現している箇所がある。

<dd><p>
[&#x00E9;i] a<br>
&#x1f09;&#x00;&#x02;━n.<br>
&#x1f09;&#x00;&#x02;(pl. A&apos;s or As, a&apos;s or as)<br>
&#x1f09;&#x00;&#x02;【1】英語アルファベットの第1字(母音字).<br>
&#x1f09;&#x00;&#x02;【2】A, a 字によって表される音[ei](bake),[&#xE0EC;](hat),[&#x0251;&#x02D0;](father),[&#x0254;&#x02D0;](small) など.<br>
&#x1f09;&#x00;&#x02;【3】A 字形の物.<br>
&#x1f09;&#x00;&#x02;【4】(印刷・スタンプ・手書きなどの)A, a 字.<br>
&#x1f09;&#x00;&#x02;【5】&#xE13B;数学&#xE13C;第一の既知数[量].<br>
&#x1f09;&#x00;&#x02;<b><成句></b>
</p>


旧EBStudioでは、16進コードの0x1F09 0x0002 は外字として定義されていないため、そのままEPWINGに出力していたが、EBStudio2だと「Unicodeの0x1F09(Ἁ)が出現した」と解釈してしまい、そのために文字化けが生じていた。EBStudioの本来の仕様では、制御文字を直接指定したい場合のために拡張タグを用意している。

<X4081>1F09 0002</X4081>

互換性を保つために、EBStudio win版(2.0.9)およびmacOS版(2.0.5)では、「UnicodeからEPWING外字に自動登録する」機能をオプションにした。
ランダムハウス英語辞典Toolkit」を使用する場合は、このオプションをoffで実行してほしい。

ランダムハウス英語辞典Toolkit」をWindows10で実行する

 なお、「ランダムハウス英語辞典Toolkit」では「ランダムハウス英語辞典」をインストールしてから変換する前提になっているが、インストーラがWindows10では実行できない。次の手順でインストールを行わずに変換ができる。

  1. CD-ROMの \DATAをまるごとPCの任意のディレクトリにコピー。
  2. CD-ROMのルートにあるReadme.txtを、コピーしたDATAディレクトリの中にコピー。
  3. 設定ファイルsrd2html.iniの DICPATH= と DATAPATH= に、1のコピー後のDATAディレクトリを指定する。