Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP+MySQLでSJISからEUCへの文字コード変換方法を教えてください。)

PHP+MySQLでSJISからEUCへの文字コード変換方法

このQ&Aのポイント
  • PHP+MySQLでSJISからEUCへの文字コード変換方法について教えてください。
  • 現在、PHP+MySQLでサイトをSJISコードで運営していますが、SJISの文字化け対策が面倒になってきました。
  • SJISからEUCに変換する場合の手順として、PHPファイル、php.ini、MySQLの設定ファイル、テーブル内のデータを変換する必要があります。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

MySQLの文字コード設定の中途変更を行ったことがないので、杞憂かもしれませんが、 MySQLの文字コード設定を変更する前に、 3.MySQLのテーブルを、LOCK TABLES を実行してから、FLUSH TABLES を実行したのち、データを全てエクスポート をまず行った方がよいと思います。でないと異なる文字コードとして(化けて)書き出される可能性は否定できないかと。 作業中にデータの変更が行われないようロックも必要でしょう。 http://dev.mysql.com/doc/refman/4.1/ja/lock-tables.html http://dev.mysql.com/doc/refman/4.1/ja/flush.html その後 4.MySQLの設定ファイルのsjisの部分をujisに変換。 5.エクスポートしたファイルを外部エディタでEUCに変換後 6.UNLOCK TABLES を行って、全行削除して、全行インポートする。この作業に掛かる時間帯は、他からアクセスされないようにする必要あり。 それで、エクスポートはどのように行う予定でしたか? SELECT INTO OUTFILE で書き出しておけば、エディターでの編集可能なテキストファイルとして書き出せて、さらにインポートは LOAD DATA INFILE で簡単に取り込めます。 サーバー内のデータ領域に余裕があれば、結構高速処理のようです。 http://dev.mysql.com/doc/refman/4.1/ja/select.html#id3062265 http://dev.mysql.com/doc/refman/4.1/ja/load-data.html あと、table数が多いとのことなので、エクスポート用とインポート用のsqlの発行を、phpからtable変更しながら行うプログラムを作ってしまえれば、table変更をMySQLadminで手作業するよりは、はやいでしょう。

Crystalize
質問者

お礼

アドバイスどうもありがとうございます。 とても参考になりました。そうですね。手作業で行なうよりプログラムを作って自動でテーブルの処理をすれば楽ですね。 焦らずにミスが無いようじっくりと対処していきたいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A