- 締切済み
文字化け
当方、CGIの勉強中の初心者です。 CGI検索フォームの作成に成功したのですが S-JISで処理を行っているために、どうしても 処理がうまく行かないことがあるようです。 そこで、使ってはいけない(処理が出来ない)文字リストなどが掲載してあるホームページがあれば是非教えていただきたいのですが。。。 お暇な方がいられましたら、是非お願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
補足見ました。 俺が答えたのとは違う現象だったのですね(^_^; どうやら下記の方々の文字コードが正しいようで。 ¥記号は、プログラムソースをコンパイルするときのことなので、動いてしまえばファイルから読み込もうと何しようと文字化けは起こりません。
- shigatsu
- ベストアンサー率26% (511/1924)
私も似たようなことで悩みました。 CSVからの検索なんですが、CSVをEUCに変換しておいて、表示する前にSJISに変換しています。 下記サイトで情報をみつけました。
jcode.plとかを使って、ほかの文字 コードに変換してから処理を行っては どうでしょうか。 たいがいどんな書籍にも紹介されて いるので、簡単に見つかると思いますよ。 #これなら、S-JIS、JIS、EUCが相互に #変換できますし。 ではでは☆
お礼
お答え頂きありがとうございます。 まだこの方法を詳しく理解していないので、これから頑張って調べようと思います。 文字入力をs-jisにして、プログラム中でEUCに変換し あらかじめEUCに変換してあるcsvファイルと照合、 該当文字列があった場合、s-jisで吐き出せば上手く行きそうですね。 (これで問題ないですよね?(^-^;)
暇じゃないっすけど答えます。 ここなんかどうでしょう↓
お礼
こんなページをすっと探していました。 本当にありがとうございます(^_^)
それはもしかして、特定の文字が化ける、という不具合でしょうか? もしそうだったら、問題になっている文字のあとに半角の「\(円記号)」を付けてください。 通常、一般に使われているUNIX用のPerlは日本語には未対応であり(日本語Perlというものもあるにはあるのですが、バイト単位での文字列操作ができないのであまり普及していません)、「\」と同じキャラクターコードが2バイト目にくると、さらに次の文字をエスケープシーケンスとして認識しようとします。 よって、「\」として認識された文字の次にもう一度「\」を付けてやれば、文字化けは起こらなくなります。
補足
お答え頂きありがとうございます。 土日と会社が休みのためお返事が遅くなりすみませんです。 ¥マークの現象はなぜか知っていたので何とか平気でした。ありがとうございます。 詳しく言いますと、CSVファイルの中の文字列を検索したいとします。 検索したい文字がもし¥をつけないと上手く動かない文字だった場合、どうすれば良いのかわからなくて・・・ とりあえず現状は、エラー終了しています。
お礼
お答え頂き、ありがとうございます。 まさにこのことを知りたかったのです。 本当にありがとうございます。