LoglessLove

愛は常に上書き保存 新ブログ→ http://www.loglesslove.net/blog

全体表示

[ リスト ]

文字化けが発生した場合や、正規表現で特定の全角文字を捕まえなければならないときに、よく文字コード表を見るのだけど、文字を探してコードを見て、という作業がいいかげん面倒になってきたので、任意の文字列を SJIS, EUC, UTF-8 のコードで表現するロジックを作った。

    $str = isset($_POST['str']) ? $_POST['str'] : null;
    $encoding = isset($_POST['encoding']) ? $_POST['encoding'] : '1';
    $regexp = isset($_POST['regexp']) ? $_POST['regexp'] : null;

    $dstEncoding = null;
    $srcEncoding = 'UTF-8';
    $strEncoded = null;
    $code = null;
    
    switch ($encoding) {
        case '1':
            $dstEncoding = 'SJIS-win';
            break;
        case '2':
            $dstEncoding = 'EUCJP-win';
            break;
        case '3':
            $dstEncoding = 'UTF-8';
            break;
        default:
            $dstEncoding = $srcEncoding;
            break;
    }
    if (strlen($str) > 0) {
        $strEncoded = mb_convert_encoding($str, $dstEncoding, $srcEncoding);

        $prefix = ' ';
        if ($regexp == '1') {
            $prefix = '\x';
        }
        
        for ($i = 0; $i < strlen($strEncoded); $i++) {
            $code .= $prefix . dechex(ord(substr($strEncoded, $i, 1)));
        }
    }
    echo $code;

こいつに値をPOSTする入力フォームをつけて終了。

2010-01-03 追記
一部間違いがあったので修正。
ついでに実装例。
http://www.loglesslove.net/encode.php

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事