2012-11-25

文字列とバイト列(16進数)を相互変換するWebアプリ作成中

MOJIHEX - The Converter of Character and Hex

http://myokoym.net/mojihex/

使用例

  • 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にも対応しており、上記以外の文字コードも使用可能です。

内部的な話

  1. まずはString#encodeで変換しようとします。
  2. 指定された文字コードが使用できなかった場合、iconvをrequireしてIconv.convで変換します。
    • iconvライブラリの使用は非推奨らしいのですが、CP930(EBCDIC)を使いたいので仕方なく
  3. 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