人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【MySQL日本語設定】【ODBC】
エクセルでODBCを使い、MySQLを操作しようとしています。
結論から言うと、文字化けします。

環境:
Windows XP, MySQL 4.1.18,Excel 2003,ODBC 3.51

C:\WINDOWS\my.ini
には、
[mysqld]
default-character-set=ujis
[mysql]
default-character-set=ujis
[mysql-dump]
default-character-set=ujis

C:\Program Files\MySQL\MySQL Server 4.1\my.iniには
[mysql]
default-character-set=ujis
[mysqld]
default-character-set=ujis

MySQL Command Line Clientから
"SHOW VARIABLES LIKE '%char%'"
と入力すると
character-set_client : ujis
character-set_connection : ujis
character-set_database : ujis
character-set_results : ujis
character-set_server : ujis
character-set_system : utf8

という状態です。
このままではいけないだろうとは分かっていますが、my.iniなどをいろいろ変更してみても上手くいかず、とりあえず、変更前の状態にいったん戻しています。

現状では「日本語」という文字列をINSERTしたつもりが、「日?{語」となってしまいます。

この問題に対して、
?MySQLの設定を変える
?設定を変えずにエクセル側で対処する
?設定を変えず、MySQLのテーブル作成時などに個別にcharsetを指定する
教えていただきたいと思います。
?や?がベターです。
よろしくお願いします。

●質問者: にぎたま
●カテゴリ:コンピュータ
✍キーワード:Char Client Command dump Excel
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ●
●60ポイント ベストアンサー

どのようにMySQLへの接続を行い、どのような処理をなさっているのかよく分からないので外しているかもしれませんが、基本に立ち返ってMyODBCの中で「SET NAMES SJIS」を行っているか、確認してみてください。

(クライアントでの文字コードをSJISに設定します。)

たいていはこれで上手く行くはずですが、それでも問題ある場合、DATABASEを作成する際に文字コードをSJISと設定しておけば文字コード変換の必要がなくなり、問題は発生しなくなると思います。

(1つのDATABASE内でTABLEごとに文字コードを変えることも可能だったはずですが、混乱のもとになりますので、避けた方が良いと思います。)

[参考URL]

◎質問者からの返答

回答ありがとうございます。

>どのようにMySQLへの接続を行い、どのような処理をなさっているのかよく分からないので

この部分、大切な情報でした。

VBAを記述して

Function P_CnString() As String

P_CnString = "DRIVER={mysql odbc 3.51 driver};" & "SERVER=localhost;" & " DATABASE=MyDB;" & "UID=MyID; Password=MyPass;"

End Function

というようにして接続をしています。

回答していただいたAll Aboutの記事のように、コンパネからデータソース(ODBC)選んで、「SET NAMES SJIS」の設定をして、Excelの"データ"->"外部データの取り込み"->"新しいデータベースクエリ"で、接続をして見ました。接続はできるのですが、やはり文字化けをしてしまいます。

CREATE DATABASEのときに、DEFAULT CHARACTER SET SJISとしてokが帰ってきていますが、やはり文字化けします。

以前はphpを使ってMySQLに接続していて、文字化け関係はそこそこ解決してきているのですが、今回のVBA,ODBC周りはよく分かりません。。。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ