Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EIJI-XXX.TXT is encoded in CP932, not SHIFT_JIS #2

Closed
ikazuhiro opened this issue Aug 21, 2013 · 6 comments
Closed

EIJI-XXX.TXT is encoded in CP932, not SHIFT_JIS #2

ikazuhiro opened this issue Aug 21, 2013 · 6 comments

Comments

@ikazuhiro
Copy link

I have Eijiro version 118, which is included in the book of Eijiro 5th edition. But I have some problems.

  1. Some "∫" characters are encoded as "\x87\x92" (NEC special character), not "\x81\xe7".
  2. The content of "acapsular" entry has non-JIS X 0208 Kanji character "蒴".

At present, texts at the above places are misconverted. When I make eijiro-fpw to treat source text as encoded in cp932 instead of sjis, An error occured at "acapsular" entry.

@fumiyas
Copy link
Owner

fumiyas commented Aug 24, 2013

”\x87\x92” のほうは CP932 → EUC-JP すれば済むようですが、「蒴」のほうは FreePWING::FPWUtils::FPWParserinvalid character: \x8f. で拒否しますね。
さて、どうしたものか…。

@ikazuhiro
Copy link
Author

JIS X 4081 (EPING) 的には外字にして収録するのがもっとも正しい方法だと思います。
他の方法として、すぐに思いつくのは

  1. 代替文字列に置換する。
  2. ロゴヴィスタの辞書で使われているUnicode拡張を使う。これは、boookendsで公開されているウィキペディアのEPWINGでも使用されていますが、対応しているビューアが限られているはずです。また、FreePWINGでもサポートしていませんので (そんなにややこしくはないですが)、 自力でデータを書き出す必要があります。

くらいでしょうか。私だけが使う分にはFreeUWINGにしてしまえばすみますが。

@fumiyas
Copy link
Owner

fumiyas commented Aug 25, 2013

CP932 対応しました。JIS X 0208 でない文字の問題は保留します。「cp932」ブランチにコミットしてあるので、よろしければ試してみていただけないでしょうか。

FreeUWING 対応は検討します。ありがとうございます。

@fumiyas
Copy link
Owner

fumiyas commented Aug 25, 2013

FreeUWING 対応ですが、下記程度の変更で対応できるものでしょうか。

  • Makefile
    • include fpwutils.mkinclude fuwutils.mk
    • s/FPWPARSER/FUWPARSER/
  • eijiro-fpw.pl
    • FreePWING::FPWUtils::FPWParserFreePWING::FPWUtils::FPWParser ほか
    • EUC-JP の代わりに UTF-8 を渡すようにする

@ikazuhiro
Copy link
Author

cp932ブランチについては意図通りに動いていることを確認しました。

ファイル名やパッケージ名の整合性はとった方がいいと思いますが、cp932ブランチからの最低限の変更としては、

  • Makefile
    • s/FPW/FUW/
    • s/fpwutils.mk/fuwutils.mk/
  • eijiro-fpw.pl
    • s/FPW/FUW/
    • s/fpw/fuw/
    • Encode::from_to($word, 'CP932', 'EUC-JP');'EUC-JP''UTF-8' に変更
    • 非JIS X 0208文字に対するworkaroundを除去
  • copyright.txt
    • 文字コードをUTF-8に変更
  • catalogs.txt
    • EPWING1 -> EPWING10

で取り敢えず動きました。

@fumiyas
Copy link
Owner

fumiyas commented Aug 26, 2013

ありがとうございました!

いつ作業できるかは未定ですが、FreeUWING 対応のほうは別途 issue #3 を立てました。

@fumiyas fumiyas closed this as completed Aug 26, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants