MS-Access2002から キャクターセットがUnicode(utf8)のMySQLにODBC接続したのですが、Access上では日本語が????と文字化けしてしまいます。(英語は問題なし)

ODBCドライバは最新版Ver 3.51.12 です。最新版はUnicodeに対応しているようなのですが、上手く行きません。
何か特殊なオプション設定が必要なのでしょうか?どなたかご教授下さい。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/03/14 03:43:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kuippa No.1

回答回数1030ベストアンサー獲得回数13

最近同様の問題で調べました。

サーバー側の設定は変更できますか?

my.confの設定を疑ってみてはどうでしょうか。

[mysqld]

default-character-set=euc

このキャラセットがされていないと、通常の平文で日本語をデータのやり取りをしても文字化けしてしまうようです。

(設定しないやりかたもどうやらあるようですが、この設定の変更をおこなわれるのが一番手身近かとおもいます。)

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1393...

http://xoops.sourceforge.jp/wiki/free/index?cmd=read&page=HO...

id:hhashimo

ご回答頂いたのは感謝しますが、自力で解決しましたので終了いたします。odbcドライバの設定の問題でした。

サーバーはeucから敢えてunicode(utf8)変更したもので、そこの設定はdefault-character-set=utf8となっています。

サーバー側でutf8で格納したデータをMS-Access側で表示させるのが目的ですので、そこを変更しても解決になりません。

2006/03/14 03:41:13
  • id:kuippa
    間違った上に的外れな回答でした。ごめんなさい。


    既にdefault-character-setは設定されていたのですね。
    これを設定していなかった場合のことをかきたかったのですが。
    どちらにしても、サーバーサイドスクリプトを利用するための解決方法でodbcでつなげるのなら解決からは縁遠い話でしたね。



    >>
    MySQL 4.1 以降では、クライアント側とサーバー側のエンコーディング設定が
    異なる場合にエンコーディング変換が行われます。この際、直接変換する
    のではなく、一度Unicode(ucs2)を経由します。・・・

    クライアント側のエンコーディング指定
    4.0 DBと一致しかできないから 不要
    4.1 必要
    5.0 my.cnf で ・・・ を指定すれば不要 ・・・
    <<


    こんかいの質問とはあまり関係はありませんが…、mySQLのutf-8文字化け質問は今後もありそうな話なので関連URLを貼っておきます。
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16539&forum=28&4
    http://q.hatena.ne.jp/1139200228
    http://sb.xrea.com/showthread.php?t=10599

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません