
PHPのmb_ereg系関数で文字化けする時に確認すること
Category PHP
Date 2010年02月19日
こんばんはっ。
最近楽器熱がファイヤーッしてるので、2日に一回くらいのペースですがギターを練習してます。
夜の0時過ぎに洗面所のドア閉めて静かに・・・
防音室が欲しいーっ!
はてさて、日本に住んで日本でPHP使って仕事しているので、もちろん文字はマルチバイト。
文字コードのトラブルは「キーッ」ってなりますね。
シングルバイトの文字しか扱わない英語圏とかだと、問題少ないんですかね。。。
そんなマルチバイトを扱う際、mb_internal_encoding指定してますよね?
で、mb_regex_encoding指定してますか??
ちなみに私は、滅多にmb_regex_encodingを指定していません。
で、文字化けして初めて気づきます。
これに関しては、
mb_eregで日本語検索すると・・ : アシアルブログ
が参考になるかと
mb_internal_encodingだけではmb_ereg系の関数で使う文字コードの指定はできないみたいですね。
実際、私の借りてるこのサーバで
mb_internal_encoding("UTF-8"); print mb_regex_encoding();
としてみると、ばっちり「EUC-JP」と返ってきました、なんてこったい。
ついでに、
mb_internal_encoding("UTF-8"); print bin2hex(mb_ereg_replace("りょう", "量", "りょう");
こんなことをやってみると、「e9878f0038」って返ってきます。
「量」は「e9878f」なので、「0038」という余計な文字が入ってしまっています。
ですが、
print mb_regex_encoding("UTF-8");
を指定しておくと、問題なく変換されます。
マルチバイトの変換などで文字化けの際は、mb_regex_encodingのことを思い出してあげてください。

- 脱出ゲームを作成しました
- Studio Yuksのサイト制作のお手伝いをさせていただきました
- よみがな.netを公開しました
- Slug or PostIDプラグインがバージョン1.0になりました。
- お問い合わせフォームへの連投を防ぐ方法+α
- phpMyAdminのsetup.phpに脆弱性があるみたいです
- 1つのデータベースに複数のWordPressをインストールする方法
- 仕事とプライベートで使っているマウスをご紹介
- WordPressでiFrameが消えないようにする記述が必要なくなったようです
- CSS3で横並びのメニューを簡単に作る方法
- Windows7にIllustratorCS2入れたけど日本語入力ができなかった
- FFFTPでファイルをダウンロードしたのに、ファイルがその場所になかった時
- PHPでurlの日本語パラメータをGETで受け取ると文字化けする場合
- JavaScriptでブラウザのテキスト選択を解除する
- お問い合わせフォームへの連投を防ぐ方法+α
- PHPのSmartyでゼロパディングする
- WordPressでiFrameが消える時の解決方法
- CSS3で横並びのメニューを簡単に作る方法
- MT5インストール時に「LWP::UserAgentがありません」とエラーが出てインストールできない時
- WordPressでiFrameが消えないようにする記述が必要なくなったようです
- HTML+CSS (8)
- JavaScript (12)
- PHP (21)
- PostgreSQL (4)
- WordPress (8)
- WordPressプラグイン (1)
- Movable Type (13)
- Photoshop (2)
- Illustrator (2)
- Firefox (5)
- ツール (2)
- 雑記 (23)
- 未分類 (3)
- Android (1)
コメントを残す