前のページ < | > 次のページ

(5) データベースを作ってみる 4 文字化けについて

データの中が文字化けするようなので、文字コード設定を確認した。

  • 現在の文字コードの設定を調べる
show variables like 'character_set%';

調べたら、文字コード設定をするファイルはmy.cnfであるが、
私の環境ではどう探してもmy.cnfがなかったので、
/xampp/mysql/bin/my.ini
をコピーしてmy.cnfという名前に書き換え、
xamppを再起動して、もう一度showで調べたら、設定がちょっと変わってました。

それでも文字化けするようであれば、my.cnf内の
[client]項目に
default-character-set=utf8
[mysqld]項目に
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
というそれぞれ記述を加えればおkだと思います。

  • それでもダメな場合は
テーブルを作る際に、いちいち文字コードを指定すると絶対文字化けしないので、
文字化けしたときは一旦全部消していちいち指定するといいと思います。


コマンドプロンプトを使わない!

コマンドプロンプトから入力すると、英数字は正確に入力できるのですが、
どうしても日本語の入力と、文字コード指定が煩わしいので、
/localhost/phpmyadmin/
をブラウザに入力して接続し、ここからSQLを直接入力していくことにしました。
なので、下記の情報は使わないことにしました。
様々なレベルでCUI→GUIへ技術が進化しているのですね。便利。



以降は実際に使わなかった方法!メモとして残しておきます。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 



コマンドプロンプトをutf8で使う

  • コマンドプロンプトは、そのままでは「Shift-JIS」という文字コードしか表示しない。しかし、下記の方法を使うと、UTF8文字コードで表示できる。
  1. ローカルディスク(C:)に「test」というフォルダを作る。
  2. スタートメニュー>アクセサリ>コマンドプロンプトを右クリックしてプロパティを見る。この中に、cmd.exeの存在する場所が書かれているので、それを参考にたどり着いたcmd.exeを右クリックして「コマンドプロンプトのショートカットを作成する」。
  3. 作成したものを先ほど作った「test」フォルダの中に入れる。
  4. UTF8を記述できるTeraPadなどのソフトを使って、例えば下記のような内容をUTF8形式で書く。ここでは、test.plというファイル名にした。
print "テストだよ\n";

  1. cmd.exeを右クリックして プロパティ>フォント から、MSゴシックを選ぶ。
  2. cmd.exeをショートカットから開き、testディレクトリ上で下記のようにタイプし、Enter。これでは、文字化けすると思います。
C:\test> type test.pl
  1. 下記のようにタイプし、Enter。これにより、UTF8に対応するはず。
C:\test> chcp 65001
  1. また、下記をタイプし、Enter。これで文字化けはなくなったはずです。
C:\test> type test.pl

  • ちなみに、chcpのあとに入れる数字によって、対応する文字コードを変えることができます。デフォルトは「932」。
437      IBM437        
932      shift_jis     
1200     utf-16       
20127    us-ascii      
20932    EUC-JP        
50220    iso-2022-jp   
50222    iso-2022-jp   
51932    euc-jp        
65001    utf-8 


utf8で入力ができない

UTF8の表示はできたのですが、日本語入力ができませんでした。
そのため、「UTF-8 TeraTerm Pro with TTSSH2」を導入しようと思います。

  • TeraTermをローカルで使う方法
    • ふつうにTeraTermをダウンロードして使うと、開いたときにTCP/IP設定を入れる項目が出て、適当に入れるとエラーが出てウィンドウが閉じてしまう。
    • そこで、その設定画面ではCancelをクリックしメニューの 設定>端末(Setup>Terminal>Transmit) をCR+LFにし、「Local echo」にチェックを入れる。
    • 設定>TCP/IP の「自動的にウィンドウを閉じる(Auto Window Close)」のチェックをはずす。
    • 参考:http://docs.olab.org/resource/teraterm.pdf


※ XAMPP 1.7.7 [PHP: 5.3.8] での設定項目です。






前のページ < | > 次のページ
◆ ◆ ◆

最終更新:2012年01月21日 14:25