ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:stockjp 日本語の文字化け
困り度:
  • 困っています
perlのCGI,DBIを使ってMysqlにinsertしてますが、日本語が文字化けします。
文字化けした文字列は???となってます。
ちょと、見当がつかないので困ってます。
Mysqlは5.037を使ってます。

設定ファイルの追記は行ってます。
[mysqld]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[mysql]
default-character-set=sjis

●SHOW GLOBAL VARIABLES LIKE 'character\_set\_%
↓実行結果
character_set_client sjis
character_set_connection sjis
character_set_database sjis
character_set_filesystem binary
character_set_results sjis
character_set_server sjis
character_set_system utf8
質問投稿日時:08/04/18 15:31
質問番号:3957213
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:nora1962 データベースのcharsetは「sjis」ですか、それなら
「use uft8」していなければ、単純にDBIでconnectした直後に
$sth = $dbh->prepare("set names sjis");
$sth->execute;
するだけで文字化けは直ると思います。
データベースのcharsetは「utf8」であるか、perlのほうで「use utf8」してあるなら、
$sth = $dbh->prepare("set names utf8");
$sth->execute;
すればinsert文に文字リテラルにutf8コードの文字列が使えるはずです。
ただし、select文で返ってくる日本語文字列はutf8フラグがついていませんから、適宜「Encode::decode」でutf8フラグをつけてやる必要がある
かもしれません。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/19 11:57
回答番号:No.2
この回答へのお礼回答ありがとうございます。

回答

 

回答者:nora1962 OSは?ActivePerlですか?Perlのバージョンは?
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:08/04/18 17:44
回答番号:No.1
この回答への補足OSはWindows 2000。
perl ActivePerl 5.8.8です。
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示