質問 |
||
| 質問者: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です。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |