【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード

過去にもあった質問なのですが、アドバイスお願いします。
perlからmysqlにアクセスしてデータを読み込むと日本語が「??????」と表示されます。
バージョンは下の通りです。
perl:ActivePerl-5.8.8.820-MSWin32-x86-274739
mysql:5.0
OS:windowsXP

mysqlの文字コードはstatusで確かめました。
mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.27, for Win32 (ia32)

Connection id: 74
Current database:
Current user: ******@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.27-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: sjis
Db characterset: sjis
Client characterset: sjis
Conn. characterset: sjis
TCP port: 3306
Uptime: 3 hours 39 min 2 sec

Threads: 1 Questions: 232 Slow queries: 0 Opens: 26 Flush tables: 1 Open ta
bles: 0 Queries per second avg: 0.018
--------------

mysql> SELECT * FROM table1
と打てば、日本語は表示されます。

perlのコードのコードを書きます。

#!C:/usr/local/Perl/bin/perl
print "Content-type: text/html;charset=Shift_JIS\n\n";
use DBI;
$user = '***';
$passwd = '***';
$sql="SELECT * FROM categ";
----略(HTMLタグ)------
$db = DBI->connect('DBI:mysql:board:localhost', $user, $passwd);
$sth = $db->prepare($sql);
$sth->execute;
$num_rows = $sth->rows;
$categ_num=$num_rows;
for ($i=0; $i<$num_rows; $i++) {
@a = $sth->fetchrow_array;
print"$a[0] $a[1]<br>";
}
$sth->finish;
$db->disconnect;
----略(HTMLタグ)------
結果
0 ?????
1 ?????

ブラウザで文字の種類を変えても「?????」のままです。
mysqlのテーブルから取り出した値をjcode.plで変換しても変わらないようです。
&jcode::convert(\$categ[$i], "sjis");
print"<tr><td>no:$i $categ[$i] </td></tr>";


まだ、設定の足りないところがあるのでしょうか。
アドバイスお願いします。

A 回答 (1件)

MySQLの4.1.15以降、5.0.13以降なら


my,ini またはmy.cnf のmysqld セクションに下記を追加

skip-character-set-client-handshake

mySQLは再起動。

perlで同じ経験をしました。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました!
日本語が表示されました!

アドバイス通りに
skip-character-set-client-handshake
を書き込んで再起動で解決できました。

ほんとに助かりました。ありとうございます。

お礼日時:2007/03/21 21:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す