• 締切済み

文字化け

当方、CGIの勉強中の初心者です。 CGI検索フォームの作成に成功したのですが S-JISで処理を行っているために、どうしても 処理がうまく行かないことがあるようです。 そこで、使ってはいけない(処理が出来ない)文字リストなどが掲載してあるホームページがあれば是非教えていただきたいのですが。。。 お暇な方がいられましたら、是非お願いいたします。

  • CGI
  • 回答数5
  • ありがとう数11

みんなの回答

noname#25358
noname#25358
回答No.5

 補足見ました。  俺が答えたのとは違う現象だったのですね(^_^; どうやら下記の方々の文字コードが正しいようで。  ¥記号は、プログラムソースをコンパイルするときのことなので、動いてしまえばファイルから読み込もうと何しようと文字化けは起こりません。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.4

私も似たようなことで悩みました。 CSVからの検索なんですが、CSVをEUCに変換しておいて、表示する前にSJISに変換しています。 下記サイトで情報をみつけました。

参考URL:
http://wakusei.cplaza.ne.jp/twn/wwwperl4.htm#Japanese
sirotti
質問者

お礼

お答え頂き、ありがとうございます。 まさにこのことを知りたかったのです。 本当にありがとうございます。

noname#9414
noname#9414
回答No.3

jcode.plとかを使って、ほかの文字 コードに変換してから処理を行っては どうでしょうか。 たいがいどんな書籍にも紹介されて いるので、簡単に見つかると思いますよ。 #これなら、S-JIS、JIS、EUCが相互に #変換できますし。 ではでは☆

sirotti
質問者

お礼

お答え頂きありがとうございます。 まだこの方法を詳しく理解していないので、これから頑張って調べようと思います。 文字入力をs-jisにして、プログラム中でEUCに変換し あらかじめEUCに変換してあるcsvファイルと照合、 該当文字列があった場合、s-jisで吐き出せば上手く行きそうですね。 (これで問題ないですよね?(^-^;)

noname#151056
noname#151056
回答No.2

暇じゃないっすけど答えます。 ここなんかどうでしょう↓

参考URL:
http://www.school.ac.jp/s111home/s111nishimura/web/perl_06.htm
sirotti
質問者

お礼

こんなページをすっと探していました。 本当にありがとうございます(^_^)

noname#25358
noname#25358
回答No.1

 それはもしかして、特定の文字が化ける、という不具合でしょうか?  もしそうだったら、問題になっている文字のあとに半角の「\(円記号)」を付けてください。  通常、一般に使われているUNIX用のPerlは日本語には未対応であり(日本語Perlというものもあるにはあるのですが、バイト単位での文字列操作ができないのであまり普及していません)、「\」と同じキャラクターコードが2バイト目にくると、さらに次の文字をエスケープシーケンスとして認識しようとします。  よって、「\」として認識された文字の次にもう一度「\」を付けてやれば、文字化けは起こらなくなります。

sirotti
質問者

補足

お答え頂きありがとうございます。 土日と会社が休みのためお返事が遅くなりすみませんです。 ¥マークの現象はなぜか知っていたので何とか平気でした。ありがとうございます。 詳しく言いますと、CSVファイルの中の文字列を検索したいとします。 検索したい文字がもし¥をつけないと上手く動かない文字だった場合、どうすれば良いのかわからなくて・・・ とりあえず現状は、エラー終了しています。

関連するQ&A

  • フォームメールが文字化け

    アングラーズネット社の「インターネットショップCGI&受注管理」という書籍に付属されている「fmail」というCGIファイルを使ってメールフォーム作成してサイトにアップロードしたのですが、メール送信確認画面で文字化けします。そのメールフォームで受信したメールも文字化けしています。AdobeGoLiveCS2でホームページを作成しています。最初GoLiveでCGIファイルを読み込むとファイル内容が文字化けになっていたので、エンコーディングを日本語シフトjisに設定すると文字化けが解消されました。しかし、相変わらずメールフォーム及び受信メールは文字化けしたままです。 OSはWindowsXPです。 アドバイスよろしくお願い致します。

  • 文字化け

    登録フォームを作成し、入力した内容でDBに追加を行うなかで、PHPmyadminで実際に見てみると文字化けしています。 レンタルサーバ(OS:linux) (1)登録フォーム(shift_jis) ↓各値を渡す (2)確認ページ(shift_jis) ↓各値をmb_convert_encoding(shift_jisに変更) (3)追加 すると文字化けします。 以前、cgi-lib.plを用いてperlで書いていたものは、 文字化けしていません。 どこがおかしいのでしょうか? ちなみに (1)登録フォーム(euc-jp) ↓各値を渡す (2)確認ページ(euc-jp) ↓各値をmb_convert_encoding(euc-jpに変更) (3)追加 としても文字化けしています。 (DBだけでなく、ページ全体も)

    • ベストアンサー
    • PHP
  • 文字化けを直す方法

    ホームページ作成中です。 あるCGIで出来たリストの一部だけをSSIで表示させようとしています。 イメージとしては買い物籠CGIの登録されている商品名だけを一覧表示みたいなものです。 リストのdatファイルは「EUC」で保存されています。 下の表示させるCGIと表示先のhtmlは「S-JIS」で保存しています。 リスト表示は他のCGIからコピーして少々変更しただけの物です。 ------------------------ #!/usr/bin/perl require './jcode.pl'; #jcode::convert(\$str, 'euc', $code); print "<center>\n"; print "<TABLE>\n"; print "<TR><TD>語録一覧</TD>\n"; print "</TR>\n"; print "<TR><TD>\n"; open (FILE2,"./data/word.dat"); @file = <FILE2>; close FILE2; $no = -1; foreach (@file) { $no++; # local($file,$number,$word,$yomi)= split /\t/,$data[$i]; local($file,$number,$word,$yomi)= split /\t/; print "$word<BR>\n"; } print "</td></TR>\n"; print "</table>\n"; print "</CENTER>\n"; exit; ------------------------------- こうすると、リスト($word)が文字化けします。(英数は化けずに表示。って当たり前ですね) どうにかしてEUCのリストのみ表示するときS-JISに変換する方法などないでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • 文字化け

    PHPとMySQLを利用して、ホームページを作っています。 ところが、どうしても一部文字化けをしてしまいます。 EUCとS-Jisの違いというのは分かっているんですけど、 データベースにアップする際、S-Jisでデータ挿入と しているにも関わらず、文字化けをするのはなぜでしょうか? また、念のため、表示する側(PHP)でも、S-Jisで表示するように指定しているんですけど…。 これは、どうしても回避できないんでしょうか? データベースに挿入する際に、例えば「表\示」と最初から 入れておかないとだめ、ということでしょうか?

  • ホームページ検索時の文字化けについて

    教えてください。 ウェブ初心者です。 職場のホームページの更新をしているのですが、ホームページを検索サイトから検索した時に、表示される検索内容文章が途中から下記のように化けています。 「 · † · ˆ† · ‹† · `€† · dž ° · }† · €t† · ° · u† · ¦ · €#ƒ · €„† · † · ƒ · @u† · €‹† · † · † ...」 これも文字コードの絡みで化けているのでしょうか。 SHIFT-JISで作成してるようです。

  • フォームで文字化けしてしまって....

    googleで検索しても答えが見つからなかったので、皆様のお力をお貸しいただければと。 携帯サイト用のフォームをつくってみたのですが、文字化けを起こしてしまい、解決法が分からずに困っております。 文字コードをEUCにしてソースも変えると【au】では HTML(フォーム1ページ目の入力画面)も、処理後(入力した内容を確認する画面)も化けてしまいます。 ※docomoとsoftbankはオールクリアでした。 また 文字コードをShift_JISにしソースも変えると HTML(フォーム1ページ目)は3キャリア共化けません。処理後(確認画面)はdocomoとsoftbankで文字化けします。 些細な事でもかまいません。 アドバイスいただけたら幸いです。

  • EUCコードのページからの送信での文字化け対策法

    EUCのhtmlページからフォーム内容をPOSTで送っているのですが、 そのデータファイルをhtmlに出力するほうのcgiはs-jisで作っています。 この場合、データ送信時にEUCをs-jisに変換して送信することって出来ますか? 出来ない場合はやっぱりcgiのほうでデータを s-jisに変換するしかありませんか?

    • ベストアンサー
    • CGI
  • DreamWeaverでEUCが文字化けする。

    DreamWeaverを使ってホームページを作っています。 最初S-JISでHPを作っていたのですが、CGIページを作る際にEUC-JPの方日本語の文字処理上都合が良かったため、CGIページをEUC-JPにしました。 そこで今までDreamWeaverで作った他のページもテキストエディタで 文字コード EUC-JP、 改行コードをUNIX形式、 HTML中のcharset=EUC-JP にしたのですが、今度はDreamWeaver上で日本語が文字化けするようになってしまいました。 DreamWeaverで普通にEUC-JPが文字化けせずに表示させるには一体どのようにしたらよろしいのでしょうか。 ご存知の方がいらっしゃいましたら教えて下さい。 よろしくお願いします。

  • 文字化け

    とても初歩的な質問で申し訳ありません。 友人のホームページが文字化けしていてどうしていいのか分からない様子。 私自身もHPを作成しておりますが、まだやり始めたばかりで、文字コードはshift_jisと指定しているのにどうして?と頭を悩ませています。 どうかお助けください!

    • ベストアンサー
    • HTML
  • 文字化け

    こんにちは、お世話になります。 実はホームページのフォームから作文を送ったのですが、先方で途中から文字化けしていて読めないと言うのです。 その文字化けしている作文を当方に送ってもらうとすべてが文字化けしていました。当方はMacのOEを使っていて、一応すべての文字セットで試してみましたが駄目でした。 Windowsから送られてきた文字化けメールを正常に読む方法はあるのでしょうか?よろしくお願いします。