JpEncodingのEUC-JPへの変換部分を修正する

以前、コッソリカラーチェッカーβのWP版を作ったときにハマったのでメモ。トラバにした方がいいのかもしれないけど、自分が使ったメソッドのみを修正しただけなのでうーん、という感じ。
同アプリを開発する際には、ユーザーの入力した文字列をEUC-JPで表現する場合のバイト列が必要だったため、かの有名なid:tmyt氏らによるJpEncoding 1.1を拾ってきて突っ込んだ。
が、どうしても上手くいかない。あれこれといじくっては検証してを繰り返した結果、同ライブラリのEUC-JPの処理部分にはミスがあるらしい、ということがわかった。
なんかすでにその書き換えをしたのが半年くらい前のお話なのでどこがまずかったとかいうことを全然覚えていないのだが、確かJISからEUC-JPに変換する部分の計算が逆関数か何かになっていたり、コード表の端にある半角の濁点か半濁点のコードが計算範囲から漏れていたり、だったと思う。そんなわけでコード表や杜甫々さんとこのCGI入門やらを見て修正したような。ぜんっぜん覚えてないんですが。
まあそんなわけで、僕が将来その改変したコードの存在*1を忘れてまたハマったら、検索の末にこの記事にたどり着きますように、っと。

*1:MC721J/AのVisual Studio 2010\Projectsの中のWP7向けアプリのプロジェクトをまとめたソリューションの中に、JapaneseEncodingというプロジェクトがあるぞ。