2005年12月06日

MySQLで文字化けが

MySQL4.1.11がインストールされているわけですが、デフォルトのままテーブルを作成しました。
データをinsertすると、日本語が化けてしまうわけです。
以前の記事の様に、
/etc/mysql/my.cnf
にキャラクタセットを書いて、再度insertしたのですが、やはり文字化けです。
うーん。と思い、mysql-adminをインストールして、テーブルを見てみました。
すると、テーブルのキャラクタセットがiso 8859-1 West Europeanになっていましたので、UTF-8 Unicodeに直しておきました。でも、まだ文字化けします。
カラムを見てみるとここも同じようにiso 8859-1 West Europeanになってしまっていましたので、UTF-8 Unicodeに直しておきました。
さて、insertしてみると。。。OKです!。
msql-adminで変更をすると、変更前に変更のSQLを表示してくれます。いいですね。
テーブルの変更はこれで、
ALTER TABLE `db1`.`table1` CHARACTER SET utf8;
カラムの変更はこれです。
ALTER TABLE `db1`.`table1` MODIFY COLUMN `column1` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;

でも、この変更だと後から作成されるテーブルがまたiso 8859-1 West Europeanになってしまいます。データベースのキャラクタセットの変更方法がわからないので、一旦データベースを削除して、テーブルを再作成したいと思います。

CREATE TABLE `table1` (
`column1` varchar(255) default NULL,
`column2` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
こんなになってました。
最後にキャラクタセットがlatin1だという指定があるので、ここはさくじょして、
CREATE TABLE `goods` (
`column1` varchar(255) default NULL,
`column2` varchar(255) default NULL
)
としました。

/etc/mysql/my.cnfのデフォルトキャラクタセットを変更してあるので、これで、新しいテーブルを作成しても、テーブルもカラムもキャラクタセットがUTF-8 Unicodeで作成されます。
posted by ほえ at 18:33| Comment(0) | TrackBack(0) | MySQL | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/10290905
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。