こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

データベースの文字コードをUNICODEにしたいのですが、
レンタルサーバーを使っており、データベースはEUCのものしか使えません。

そこでテーブルごとに文字コードを指定して作成しようと思ったのですが、
うまくUNICODEのテーブルができません。

以下の記述でEUCのデータベースにUTF-8のテーブルを作成しています。
どこか間違っていますでしょうか?

------------------------------
create table テーブル名 (
 id integer,
 name varchar(120)
) CHARACTER SET utf8;
-----------------------------

お詳しい方がおられましたらご回答下さい。
宜しくお願い致します。

投稿日時 - 2008-03-21 19:57:19

QNo.3882889

困ってます

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

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

投稿日時 - 2008-03-23 14:54:35

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

経験は少ないのですが、

mysqlのバージョンによってそのコマンドがうまく行く場合とそうでない場合があるのではないでしょうか。

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

投稿日時 - 2008-03-21 23:07:19

あなたにオススメの質問