既存のシステムを後からUnicode化することの大変さは?

このQ&Aのポイント
  • 既存のシステムをUnicode化するって大変なことですか。文字コードのことを考えながら作るのは大変そうなので、まずは日本語できちんと動くようにし、後から文字コードを変更設定してはどうかと思うのです。
  • 最終的には、中国語(GB2312)と日本語を混在させたいわけですが、それは大変ということなら、最初から頑張っておいた方が良いように思います。
  • MySQLは4.1以降でUnicodeに対応しています。PHPやphpMyAdminとは関係ありません。
回答を見る
  • ベストアンサー

既存のシステムを後からUnicode化することの大変さは?

http://oshiete1.goo.ne.jp/kotaeru.php3?q=2156889 の続きになりますが、 既存のシステムをUnicode化するって大変なことですか。 先に、euc-jp(ないしShift_JIS)ベースでPHPやMySQLの関連システムを 構築したとします(すべて作るのはこれからです。MySQLに放り込む データセットをつくるのもこれからです。)。 最終的には、中国語(GB2312)と日本語を混在させたいわけですが 文字コードのことを考えながら作るのは大変そうなので、まずは日本語で きちんと動くようにし、後から文字コードを変更設定してはどうかと 思うのです。逆に、それは大変ということなら、最初から頑張って おいた方が良いように思いますが・・・ それと、Unicodeを扱うのに最適なバージョンをご紹介下さい。 MySQLは4.1以降で対応してましたっけ? PHPは関係ないですよね? phpMyAdminも大丈夫そうに思うのですが・・・

  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

後からMySQLの設定でテーブル(またはデータベース)の文字コードを変更しても、既に入っているデータの文字コードも自動的に変更してくれるわけではないので後からUnicode化というのは面倒です。 MySQLではUnicodeで扱っておいて、 使うときになってからクライアントで日本語のときは SET NAMES ujis (ujisはEUC-JPのこと) 中国語のときは SET NAMES gb2312_bin または SET NAMES gb2312_chinese_ci としてはどうでしょう? SET NAMESを使わずに日本語・中国語両方Unicodeのままというのもありだと思いますけど。 > MySQLは4.1以降で対応してましたっけ? そうです。 でも新規で使うなら4.1系ではなく5.0系でいいでしょう。

litton101
質問者

お礼

Etherskyさん、いつもお世話になっています。 やっぱり後付けで変更というのは キツイのですね。 そもそも設計段階で根幹となる部分ですから こんなことで悩むのも論外なのかもしれませんが… ご提案のような方向で頑張ってみます。 今後ともよろしくお願い致します。

関連するQ&A

  • 文字化けについて

    PHP5 MySQL5 phpMyAdmin の3種でシステム構築を行っていました。 この度新しいPCで環境を設定した所、文字化けが起きてしまいました。 構築した以前のローカル環境と各バージョンや設定は同じはずなのですが、文字化けに悩まされています。 具体的には、MySQLはEUCでPHPはShift_JISにて構築しています。 システムの構造は、Shift_JISをMySQLに挿入する際はEUCに変換して格納しています。 文字化けは、phpMyAdminでは正常にみれるものがシステムをブラウザから確認すると日本語が全て???に文字化けしてしまっています。 そこで、phpMyAdminからDBの文字コードをlatin1にした所、今度はphpMyAdmin上で文字化けし、ブラウザ上からは正常にみえるといった状態です。 数日格闘しているのですがお手上げ状態です。 どなたかアドバイス頂ければ幸いです。

    • 締切済み
    • PHP
  • Flash8のユニコードについて。(mySQLとの連携)

    Flash8とPHPとmysqlの連携でアプリケーションを作っています。 mysqlで作ったデータベースからphpで日本語のテキストを読み込み、ActionScriptで表示させたいのですが、ユニコード(?)が違うらしく文字化けが起こってしまいます。(ムービープレビューの際) mysqlのユニコードShift-JISにしています。 Flashのユニコードを変更することはできるのでしょうか? また、文字化け解消のアドバイスなどあればお願いします。

    • ベストアンサー
    • Flash
  • 日本語と韓国語の混在入力と文字化けについて

    ホームページ上の掲示板で、韓国語を入力したとき、 Windows98SE IE6.0 エンコードがShift-JISでは韓国語入力ができ Windows2000 IE6.0 エンコードがShift-JISでは書き込んだときは 韓国語がの日本語EUCコードの文字に化けしてしまいます。 この掲示板はUNICODEでないため、韓国語が入力できること自体 不思議なのですが、どうしたら、文字化けせず韓国語と日本語の 混在が可能でしょうか?

  • 中国語が文字コード変換で、一部文字化けする。

    PHPとMySQLで中国語のサイトを作っているのですが、データベースから読み出した文字列が、GB2312に変換後一部の文字だけ「?」になってしまいます。 このサイトでは中国語以外に、既に日英のサイトがあってそれらは、 日:WEB = SJIS / DB = EUC 英 : WEB = UTF-8 / DB = EUC 中 : WEB = GB2312 / DB = EUC という構成になっています。 ちなみに管理者画面では、日、英、中、全てのコンテンツを編集できるようになっていて、文字コードは、shift-jisにしてあります。 ですので、中国語のコンテンツを書き出すときは、 管理者画面:shift-jis ↓ PHP処理:EUCに変換 ↓ DB:EUCで登録 ↓ DB:EUC ↓ PHP処理:GB2312に変換 ↓ HTMLに書き出し という流れになっています。 中国語のサイトを作られている方は少ないと思いますが、分かる範囲でアドバイスをいただければと思います。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • リダイレクトする時の文字コードをUnicodeに

    現在、VisualStudioで、システムコールの標準出力結果をリダイレクトしてファイルに保存する プログラムを書いています。 _tsystem(command); のような感じで、commandには "hogehoge > hoge.txt"のように入ります。 ※command はTCHAR この出力結果が、Shift-Jisになっているようで、Shift-Jisだと日本語が文字化けせずに表示されるのですが、Unicode UTF-16にすると文字化けしてしまいます。 Unicode UTF-16とかUnicode UTF-8など文字コードを指定してリダイレクトできないのでしょうか。 ちょっと調べてみましたがうまく見つかりませんでした。

  • phpのソースによって、文字化けしてしまいます

    お世話になっております。 PHPとMySQLを利用しております。php.iniでPHP 、my.cnfでMySQL、それぞれの文字コードを「日本語EUC」に設定し、問題なく動作しております。 ただ、PHPスクリプトのソースコードが日本語EUCでない場合、出力結果が???????のように文字化けしてしまいます。 PHPスクリプトのソースの文字コードが、日本語EUCであっても、シフトJISであっても文字化けしないようにするには、どのように設定したらよいでしょうか。 初心者であり、困っております。 どなたか、お助けいただくことはできますでしょうか。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字化けにどう対処したら・・・PHPをShift_JISで書いて、MYSQLに格納しました

    最初からEUCで書けばよかったのでしょうが? 知識が無くて、全部Shift_JISで書きました。 (文字化けをなめていました。。) 結構、文字化けすることが多くて修正するしかなくなってきましたが 全部書き直さずに改良するにはどうしたらいいでしょうか? PHP Version 4.4.2 MYSQL 4.0.26 にデータはきちんとShift_JISで入っているようです。 **phpmyadminでShift_JISで表示させるとちゃんと表示します、  それ以外で表示させると文字化けします。 フォームを使って、MYSQLに格納して 後で、呼び出して表示するだけです。 どうか宜しくお願いいたします。 相変わらず、要領の得ない質問でスミマセン。

    • ベストアンサー
    • PHP
  • MySQLへの吐き出し日本語が文字化けする

    自分なりに調べてみたのですが,わからないのでお尋ねいたします。 phpmyadminからmysqlに直接日本語を打ち込むと,ちゃんと日本語が表示されます(phpmyadmin内でデータを再度呼び出した時)。が,phpのプログラムからmysqlにデータをinsertし,phpmyadminでデータを参照すると日本語部分のみ文字化けします。 同じプログラムをアイルサーバで動かしていて,そこではうまくいっているのですが,ファーストサーバでうまくいきません。 ファーストサーバの文字コードはEUC-JPですが,phpもプログラムもEUCで書いています。メール送信部分のプログラムは,ちゃんと日本語が出ています。 日本語文字化けの場合に,チェックするべきところは,どういうところがありますでしょうか?。多分,phpというよりはMYSQL側の問題のような気がしないでもないのですが・・・。

    • ベストアンサー
    • PHP
  • Unicodeを使うのだという設定はMySQLのどこでするのですか?

    中国人を中心とした名簿のようなシステムを作りたいと思います。 MS Accessで作れば容易でしょうが、ここはPHP+MySQLの勉強と 楽しみを兼ねて簡易なWebシステムにしたいです。なお、社内LANで 共有するだけなので、安全面には必要以上の配慮はしません。 問題ですが、Shift_JISの漢字だけでは留学生の名前で困るし、 かといってインターフェイス(HTML)は日本語にしたいです。 そこで、Unicodeなるものが登場するものと想像しているのですが、 HTMLソースの部分は <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> として、EmEditorなどUnicode対応エディタでシコシコかきますが、 MySQLの方の言語は、どこでどのようにセットすればよいのでしょうか。 MySQLのバージョンは5.0.21です。 その他、Unicode環境を構築するうえでの注意点等あれば、ご教示を お願いします。

    • ベストアンサー
    • MySQL
  • mb_convert_encodingでUnicodeからBIG-5へ文字コード変換で一部が???に

    MySQL4.0.24+PHP4.3.11(Linux環境)で、日本語(EUC)と中国語(BIG5)の混在したデータベースを制作しています。 具体的には、中国の施設の固有名称を 中国語、日本語、英語表記で管理画面から登録します。管理画面は3言語が同時に表示される様にUnicodeでページを作成。MySQLへもUnicodeのまま保存しています。 MySQL上では、どの言語も文字化けせず表示されています。 MySQLからデータを参照し表示するページでは、日本語ページでは日英語のみ、中国語ページでは中英のみの表示であり、他にも理由があって、取り出したデータをmb_convert_encodingでEUC-JPやBIG-5へ変換して表示したいと思っています。 日本語への変換は、EUC-jpへもShift-JISへも問題なく出来、表示がされますが、中国語に関しては日本語と同じ漢字の部分は変換されるのですが、日本語にない漢字の部分が??として表示されてしまいます。 PHPインストール時に --enable-mbstring=twも追加し、 mbstringの設定を確認しても Multibyte Support enabled Japanese support enabled Traditional chinese support enabled Multibyte (japanese) regex support enabled となっています。 他に確認すべき項目などもあるのでしょうけど、マルチバイト対応状況はバージョンが変わるとだいぶ変わっていたりして、検索してもなかなか情報が得られなかったので質問させて頂きました。

    • ベストアンサー
    • PHP