Hatena::ブログ(Diary)

ty-zeroの日記

2009-11-10

コマンドプロンプトでのUTF-8文字化け問題

MySQLDB文字コードUTF-8に統一

コマンドプロンプトからだとエラー発生

原因はコマンドプロンプト文字コードsjisになっているから。

以下の手順でUTF-8に切り替え

手順

1. コマンドプロンプトフォントの変更

コマンドプロンプトを立ち上げる→タイトルバー右クリック

プロパティフォントから"MS ゴシック"を選択する。

フォントを"MS ゴシック"に変更します。

MS ゴシックは、Unicodeに対応するすべての文字を正しく表示できるわけではないが、一応ユニコードに対応している。日本語や飾り文字を含む文字を表示することができます。

2. コマンドプロンプト文字コードの変更

# UTF-8に変更

chcp 65001

# 元の文字コード( デフォルト ) に戻すとき

chcp 932

# 文字コードを確認するとき

chcp

コマンドプロンプト文字コードUTF-8に変更するには、chcp 65001 とする。

このモード変更にはバグがあるようで、プロパティからコマンドプロンプトの設定を行うことができなくなる(MS ゴシックが選択できない)。

プロパティからコマンドプロンプトの設定を変更するには、chcp 932 として元の文字コードにいったん戻ってから変更を加える。

3. ショートカットから文字コードの自動設定を行う。

コマンドプロンプトショートカットアイコンを右クリック→ショートカット

リンク先を

%SystemRoot%\system32\cmd.exe /f:on /k "chcp 65001"

に設定。

毎回文字コードを変更するのが面倒なときは自動化。

/k は、コマンドプロンプトと実行時に、実行したいコマンドを記述。

/f:on は、ファイルの補完機能。

参考URL

http://d.hatena.ne.jp/perlcodesample/20080706/1215291523

--------------------------------------------------------------------------

コメントより

mysql起動時に

mysql -u [ユーザ名] -p -b --default-character-set=cp932

パスワード入力でもOK。-bはビープ音なしになる。

sh2sh2 2009/11/10 17:13 以下のオプションを指定されてみてはいかがでしょう。
> mysql --default-character-set=cp932

ty-zeroty-zero 2009/11/12 14:05 sh2さん>おお!出来ました!!ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ty-zero/20091110/1257826284