Shift-JIS文字化けについて
shift-jisで作成したcsvを、MySQLへ"load data infile"し、perlにて query("select * from... ) で検索一致したものを、
"Content-type: text/html;charset=Shift_JIS\n\n"のHTMLで表示させたところ、???と表示され、文字化けしてしまっております。日本語が入る部分のcreateした型はtext型です。
しかし、"Content-type: text/html;charset=EUC-JP\n\n"ですと、正しく検索され、日本語表示されてました。このままEUCでいきたいところですが、作業の都合上、HTMLをsjisで表示させなければならず対策に行き詰っております。
環境ですが、レンタルサーバのRedHat(versionは失念...)、MySQLのcharsetは、
mysql>show variables like 'char%';
character_set_client ujis
character_set_connection ujis
character_set_database ujis
character_set_results ujis
character_set_server ujis
character_set_system utf8
perl, MySQLのバージョンは以下です。
o perl-5.8.0-88.4
o mysql --version
Ver 14.7 Distrib 4.1.14, for pc-linux-gnu (i686) using EditLine wrapper
レンタルサーバである事と、別の運用中サーバが既にMySQLを利用中であるため、再コンパイルをせずに、影響が無い範囲でどうにか日本語文字化けを改修できないか、過去の本サイトの過去質問も読み返しまして、
変換ライブラリjcode::convert(\$str,'sjis','euc')
や、perlスクリプトのDB connect直後に、
query("set names sjis")
query("set character set sjis")
なども行いましたが症状は変わらず、まだ解決に至っていない次第です。
#過去質問の見落としかもしれません。。。
何卒ご教授よろしくお願いします。m(_ _)m
情報の不足があればご指摘下さい。
補足
PDFの出力はphpでMysqlからDATAを取得してphpでPDFを生成しています。 ※phpのスクリプトは自前です。