2012-11-25
文字列とバイト列(16進数)を相互変換するWebアプリ作成中
MOJIHEX - The Converter of Character and Hex
使用例
-
char -> byte (UTF-8)
- あ -> e38182
- あいう -> e38182 e38184 e38186
-
char -> byte (Shift_JIS)
- あ -> 82a0
-
char -> byte (CP930)
- あ -> 0e44810f
-
byte -> char (UTF-8)
- e38182 e38184 e38186 -> あいう
使える文字コード
以下の文字コードを選択できます。
- UTF-8
- Shift_JIS
- EUC-JP
- CP930(EBCDIC)
- UTF-16BE
HTTP-GETにも対応しており、上記以外の文字コードも使用可能です。
- RubyのEncoding::Converterクラスで使用可能な文字コード
- サーバーのiconvで使用可能な文字コード
内部的な話
- まずはString#encodeで変換しようとします。
- 指定された文字コードが使用できなかった場合、iconvをrequireしてIconv.convで変換します。
- iconvライブラリの使用は非推奨らしいのですが、CP930(EBCDIC)を使いたいので仕方なく
- iconvにも定義されていない文字コードだった場合、エラーになります。
参考
instance method String#encode http://doc.ruby-lang.org/ja/1.9.3/method/String/i/encode.html
class Encoding::Converter http://doc.ruby-lang.org/ja/1.9.3/class/Encoding=3a=3aConverter.html
library iconv http://doc.ruby-lang.org/ja/1.9.3/library/iconv.html
GitHub - myokoym/mojihex https://github.com/myokoym/mojihex