• ベストアンサー

テーブルごとに文字コード指定

データベースの文字コードをUNICODEにしたいのですが、 レンタルサーバーを使っており、データベースはEUCのものしか使えません。 そこでテーブルごとに文字コードを指定して作成しようと思ったのですが、 うまくUNICODEのテーブルができません。 以下の記述でEUCのデータベースにUTF-8のテーブルを作成しています。 どこか間違っていますでしょうか? ------------------------------ create table テーブル名 (  id integer,  name varchar(120) ) CHARACTER SET utf8; ----------------------------- お詳しい方がおられましたらご回答下さい。 宜しくお願い致します。

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

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

そのレンタルサーバーのMySQLのversionが問題です。 以前から4.0で運用されているところは、4.1以上にすると、不具合出まくりになるので4.0のままのところも多いです。 4.0だと、ujis(= EUC-JP)かsjisしか使えません。4.0では、クライアントとサーバー間での文字コード変換は行われないので、文字列型にbineryを追加して、データを入れる時に、escapeしていれば、とりあえずunicodeでもいれれて、取り出し時に適切に文字コードを判定出来れば表示できるかもしれません。 が、ソートや検索時にはエラーになったり、きちんとマッチしない可能性があります。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

経験は少ないのですが、 mysqlのバージョンによってそのコマンドがうまく行く場合とそうでない場合があるのではないでしょうか。 またうまく行っていないことの確認は何で行っているのでしょうか。 サーバとクライアントのキャラクタセットが異なるとき、結果の文字コードがクライアントのキャラクタセットに合わせて自動変換されるはずです。(ただしver.4.1.1以降) さらに、Linuxのterminalは、文字コードを変換できますが、Windowsのコマンドプロンプト確か変更できないかと思います。したがって確認も慎重にやる必要があります。