Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日本語の文字化け)

日本語の文字化け問題について

このQ&Aのポイント
  • 日本語の文字化け問題が発生しています。PerlのCGI,DBIを使ってMySQLにデータをinsertしている際、日本語が文字化けしてしまいます。
  • 文字化けした文字列は「???」と表示されます。
  • Mysqlの設定ファイルには、default-character-setがsjisとなっており、各種変数もsjisとなっています。SHOW GLOBAL VARIABLESコマンドを実行した結果、character_set_clientやcharacter_set_serverなどがsjisであることが分かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

データベースの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フラグをつけてやる必要がある かもしれません。

stockjp
質問者

お礼

回答ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

OSは?ActivePerlですか?Perlのバージョンは?

stockjp
質問者

補足

OSはWindows 2000。 perl ActivePerl 5.8.8です。

すると、全ての回答が全文表示されます。

関連するQ&A