• ベストアンサー

文字コードの統一方法

フォームから表示されている文字コードとは違う文字コードで送信されてもEUC-JPに統一できるようにしたいのです。 現在は以下のようにしています。 $str = mb_convert_encoding($str, "euc-jp" ,"auto"); しかし、これだとまだまだ変換しきれない文字コードが多く困っています。どの文字コードでも統一できる方法があればお願いします。 もし、無いようでしたら上の方法で統一できない文字コードで送信された場合はエラー処理をしたいので、送信データの文字コードを調べる方法をご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • unimentai
  • ベストアンサー率70% (34/48)
回答No.1

mb_detct_encoding関数で文字エンコーディングを検出し、 その結果を用いて変換しては如何でしょう。 具体的には↓以下のような感じです。 mb_detect_order("ASCII, JIS, UTF-8, eucJP-win, EUC-JP, SJIS-win, SJIS"); $enc = mb_detct_encoding($str); if ( ($enc != "ASCII") && ($enc != "JIS") && ($enc != "UTF-8") && ($enc != "eucJP-win") && ($enc != "EUC-JP") && ($enc != "SJIS-win") && ($enc != "SJIS") ) { echo "未知の文字コードが入力されました。<br />\n"; exit; } $str = mb_convert_encoding($str,"EUC-JP",$enc); 以上、ご参考までに。

参考URL:
http://www.php.net/manual/ja/ref.mbstring.php

関連するQ&A