ウエブプログラミングやデザインを勉強しましたが、日本語のウエブサイトを作ったことがありません。
触ると、いっぱい問題が発生。。。
Mysqlで日本語が表示されない問題。
使っているテスト環境:
■ Xampp (Apache OSS)
■ Mysql だけを使います。(5.5.27)
※ Mysql の設定ファイルに関わらず、日本語が表示されます。
日本語が表示されるのに、「データベース」または「テーブル」のCHARACTER SET(キャラクターセット)は sjis または utf8 です。
1.最初から始まりデータベースを作る場合は:
手順:
データベースを作るとき、必ず「character set <キャラクターセット名>」 を追加。
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
例:
CREATE DATABASE user CHARACTER SET sjis;
CREATE DATABASE user CHARACTER SET utf8;
■「CHARACTER SET NAME」はテーブルに作成されておきます。
見たいなら:
show character set;
2.途中に直す場合:
挿入して起きたデータは変わりません。表示されないデーターはそのまま、表示されない、CHARACTER SET を変更しても。。。
※データベースなら:
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification ...
alter_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
例:
ALTER DATABASE user CHARACTER SET utf8;
ALTER DATABASE user CHARACTER SET sjis;
※テーブルなら:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
| [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]
例:
ALTER TABLE user CONVERT TO CHARACTER SET sjis;
又は:
ALTER TABLE user CHARACTER SET sjis;
※注意:
もし、プログラミングしたら、このクエリーを必ず最初に送信すれば、大丈夫。
set names <キャラクターセット名>;
※便利なコマンド:
作成したデータベース、テーブルのキャラクターセット情報を見たいときは、このコマンドを実行しよう。
SHOW CREATE TABLE <テーブル名>;
SHOW CREATE DATABASE <データベース名>;