2007年03月01日03:25 カテゴリ技術-PHP PHPで UTF-8←→SJIS の変換を行う場合の注意 php で文字コード変換をする場合は mb_convert_encoding("ほげほげ", "SJIS", "UTF-8")といった感じで変えられますが mb_convert_encoding("郄橋", "SJIS", "UTF-8")とやると文字化けします。 つまり、Shift-JISの拡張文字をUTF-8 (から|へ) 変換しようとすると化けるらしい。 拡張文字の代表としては「磲」とかも。 あとは「?????」のローマ数字の類もそう。 解決としては mb_convert_encoding("郄橋", "SJIS-win", "UTF-8")これだけ? って感じですが、これで問題なく変換できます。 これだけでなぜ通るのか、ちょっと調べたけれどよくわかりませんでした。 詳し
[参考]GPC(GET/POST/cookie)以外の情報を送るアラワザ php.iniで以下の設定があるとき magic_quotes_gpc = On クライアントより<form>フォームで送られた文字列データが全てエスケープされ、 「" → ¥"」「¥ → ¥¥」など変換処理が行われます。 またクッキーも同様です。 ここで問題になってくるのが、Shift-JISを扱うときです。5C文字化けに遭遇します。 『ソ』、『噂』、『圭介』、『能』という字も、エスケープされます。 エスケープしないようにするためには、Magic quotesの設定をOffにするのが単純な方法ですが、 設定変更できない場合などあります。 またこれが設定されているかされていないかで、いちいち意識するのも面倒であったりします。 たとえば開発環境のサーバーではできてたのに、本番環境のサーバーではできなかったり。 そんなと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く