- PR -

MS-Access + ODBC での文字コードの指定

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/06/01
投稿数: 4
投稿日時: 2007-06-01 11:41
MYSQL 5.0.27を使ってデータベースを構築しているのですが、

Access2003からODBCドライバ(3.51.15)を使って、テーブルのリンクをしたのですが、漢字の文字列が化けてしまいます。

MYSQL内のテーブルには、UTF8で保存しています。PHPを使ってのブラウザ上で表示は、正しくいくのですが、ACCESS上では、漢字が化けてしまいます。ACCESSでは、UTF8での表示は、不可能なのでしょうか?

my.cnfの中では、以下のような表記をしています。

[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8




ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-06-01 11:48
MS-Access + ODBC での文字コードの指定
未記入
会議室デビュー日: 2007/06/01
投稿数: 4
投稿日時: 2007-06-01 13:07
教えていただいたURLのように、
Initial Statement に"SET NAMES SJIS"してみて試したのですが、文字化けしたままです。

未記入
会議室デビュー日: 2007/06/01
投稿数: 4
投稿日時: 2007-06-04 18:16
何とか解決しました。

1つ目の原因がMYSQLではじめに作成したテーブルがUTF8になっていなかったこと。
テーブル作成時に特に指定していなかったので、(latin1で作成されたいた?)

2つ目が以下のサイトに出ているように、
MYSQLとクライアントのキャラクターセットが違っていたこと。
(てっきりmysqlクライアントと同じだと思っていた。PHP内で、
show variables like 'char%'を行うと思わぬ結果が)
mysql_query("set names utf8", $con)を追加して、解決しました。

PHPとMySQLの個人的まとめ - ぱんぴーまっしぐら
http://puchiko.lowtech.ne.jp/index.php?itemid=349&catid=27

mysqlクライアントからチェックすると問題なさげだが…

mysql> SHOW VARIABLES LIKE 'char%';
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |

PHPで接続すると実際は…

| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |

MYSQLで確認した場合とPHPで確認した場合のコードが違っていたこと。

1

スキルアップ/キャリアアップ(JOB@IT)