恐怖の文字化け・・・不思議な理由とは?

このQ&Aのポイント
  • Perl専用のテキストエディタの日本語S-JISモードで掲示板のスクリプトを作成しましたが、PCとiモードからの投稿で文字化けが起きる現象が発生しました。PCのブラウザではiモードでの投稿の名前が文字化けして表示され、逆にiモードのブラウザではPCからの投稿の名前が文字化けして表示されます。原因や解決策について教えてください。
  • Perlのテキストエディタで作成した掲示板スクリプトにおいて、PCとiモードからの投稿で文字化けが起きる現象が確認されました。特に名前の表示において、PCのブラウザではiモードからの投稿が文字化けし、iモードのブラウザではPCからの投稿が文字化けします。この問題の原因と対処方法について知りたいです。
  • Perl専用のテキストエディタで作成した掲示板スクリプトにおいて、PCとiモードからの投稿で文字化けが生じている状況に困っています。PCのブラウザではiモードからの投稿の名前が文字化けして表示され、iモードのブラウザではPCからの投稿の名前が文字化けします。この文字化けの原因や解決策について詳しく教えてください。
回答を見る
  • ベストアンサー

恐怖の文字化け・・・不思議でもあります。なぜでしょう?(長文です)

Perl専用のテキストエディタの日本語S-JISモードで掲示板のスクリプトを作りました。改行コードはCR+LFです。 有名なFFFTPを使い、サーバーへアップしました。 その掲示板はiモードとPC両方でできるように作ったつもりです。 試しにPCから投稿。iモードからも投稿しました。 投稿した後の、サーバー内の保存データをFFFTPで見ると、全く文字化けしていません。 ところが、不思議なことに、 PCのブラウザで見ると、PCで投稿したものは名前がきちんと出ているのに、iモードから投稿した名前は『%xx%xx%xx%xx』みたいな文字で出てきます。 逆に、iモードのブラウザで見ると、PC投稿のものが%表示され、iモード投稿のものはきちんと見られるのです。 色々と調べてみましたが、理由がはっきりわかりません。 どなたかご存知の方はご教授ください。 よろしくお願いします。

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#25358
noname#25358
回答No.1

 iモードとPCとでは文字コードが違っているからです。  iモードで使用されている文字コードは、俺の記憶が正しければ、たしか「シフトJIS」だったと思います。  ソースコードとデータをシフトJISに変換し、アップロードしなおしてみてください。(FFFTPにはそのような機能が搭載されていたはずです)

investorgoo
質問者

お礼

ご回答有難うございました。 コード変換をやり直したら成功しました♪

関連するQ&A

  • 文字化けしたテキストファイルをもとに戻す

    紙copi を使用して文字化けしてしまいました。 問い合わせると、 『文字コードUTF-8のファイルですが、改行コードが「LF」となっております。 紙copiではどの文字コードファイルについても新規ファイル作成時には一律に 「CR+LF」の改行コードにて保存しますので、新規作成時に「LF」の改行コード ファイルが作成されることは通常ないものと考えております。』 で、改行コードが「LF」のテキストファイルを「CR+LF」の改行コードのものに 戻す方法がありますか? よろしくお願いします。

  • Movable Typeでmt-check.cgi実行時に文字化けする

    初めてのMovable Type3.121をレンタルサーバのロリポップに導入がうまくできたので、仕事に使っているLinux(Vine2.4)に導入しようとしています。文字コードについて調べてどうしてももわからなかったので、ご教授ください。   [状況]  ・Linux側の文字コードがEUCだと思っていたので、秀丸で一度mt-check.cgiを開き、文字コードをEUC、改行コードをLFにして保存した  ・mt-check.cgiをcgiが稼動できるディレクトリに保存  ・FFFTPにてアップロードし、一度viで開いて確認したところ、文字化けは見られない(正常にアップロードできているっぽい)  ・Apacheのversionは、1.3.27 上記の状態で、mt-check.cgiを実行すると、大部分の文字列は正常に表示されるものの何箇所か文字化けが発生しました。 ブラウザで開いた状態でsourceファイルを表示させたところ、「日本語(EUC)で読み込み中に変換できなかった文字列が56箇所ありました」とのことでした。 アップロードする際にあてずっぽうにファイルの保存形式をutf-8やshift-jisにしてみたり、改行コードをCR+LFやLF,CRにしてみても改善しませんでした。何が原因で文字化けが発生しているのかわかりません。どなたかご助言いただきたくお願いします。

  • PHPの文字コードどのように設定すればいいですか?

    PHPをテキストエディタ(TeraPad)で、書こうとしているのですが、文字コードの設定がわかりません。 初期文字コード SHIFT-JIS JIS EUC Unicode UTF-8 UTF-8N いろいろあってどれを選んだらいいのかわかりません。 今はSHIFT-JISにしてます。 保存文字コード 自動 今は自動にしてます。 初期改行コード CR+LF 今はCR+LFにしてます。 保存コード 自動 今は自動にしてます 間違っている、又はこちらのほうがいいというのがありましたら是非教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • MACで文字化けが治らないんです>_<

    MACを買ったらFTPサーバーで文字化けが起きるようになりました。 先日MACを買い、自分のHPにperlで作ったCGIを同じFTPツール(fireFTP)と同じソースコード(以前動いたの)をアップしたら文字化けが出ました。何か解りませんか? このままでは自分のサイト更新が続けられなくて、今困ってます! 文字化けだったので、文字コードは検索してみました。 MACからmiってソフトで、MACの改行CRからWinのCR+LFに直し、FTPのアップロードソフトをWinと同じFireFTPに変えてみてもできませんでした。 何が悪いのかちょっと良く解りません。詳しく教えて下さいお願いします。

    • 締切済み
    • Mac
  • ApacheにてHTML・PHPファイルが文字化けします

    現在、業務の関係でHTML・PHPファイルをブラウザで表示させているのですが、あるファイル(HTML・PHP両方とも)のみ文字化けをおこしてしまうのです。 OS:TurboLinuxServer6.1 Webサーバ:Apache1.3.26 ブラウザ:Netscape4 PHP:PHP3.0.18 HTML・PHPファイルの上には「charset=Shift_JIS」と、すべてのファイルに記述しています。 PHPのiniファイル内の「i18~」もShift_JISに統一しています。 Apacheのhttpd.confの設定も行なったのですが、効果がありませんでした。 ちなみに、HTML・PHPファイルはWin→Linuxにコピーするとき、秀丸でファイル形式を「EUC(改行=lf)」で保存しました。(こうしないと、改行に変な文字がついてしまうので) gooで検索をかけたところ、ファイルのパーティションを705にかえる方法がありましたが、それも関係あるのでしょうか? なにか、よきアドバイスがあればお願いいたします。

    • ベストアンサー
    • HTML
  • HTMLの文字化けについて

    HTMLの文字化けについて クライアントPC(WindowsVista)で作成したHTMLファイルをサーバ(CentOS5.4)にアップして、ブラウザから確認してみたところ、文字化けを起こしてしまいました。 ローマ字は問題ないのですが、日本語が文字化けしてしまっており、表示がめちゃくちゃになってしまっています。 HTMLはK2Editorにて作成して、文字コードはShift-JIS、改行コードはCRLFとしております。 しかし、文字化けした状態でブラウザの文字エンコーディングをEUC-JPに変えて再度読み込んでみたところ、文字化けせずに表示されます。 サーバ側の文字コードは、 # vi /etc/sysconfig/i18n LANG="ja_JP.EUC-JP" と設定し、デフォルトのUTF-8からEUC-JPに変えております。 なので、もしかしたらサーバ側の文字コードとHTMLの文字コードが何か関係しているのかと私は思うのですが・・・ 文字化けの原因がお分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。

    • ベストアンサー
    • HTML
  • 【PHP】fgetsした際に「CR/LF」だけを改行と認識したい。

    【PHP】fgetsした際に「CR/LF」だけを改行と認識したい。  fgetsで1レコードを読んだ際に、現在は「CR/LF」および「LF」が改行として認識されています。  これを「CR/LF」のみ改行という認識に改めたいのですが、php.iniの設定で行えるのでしょうか。  もしくは、別の方法で実現出来るのでしょうか。  ご存知の方がいらっしゃいましたら、ご回答頂けると幸いです。 【環境】 ・PHP Version 5.2.5 ・サーバ WindowsServer2003 + IIS ・文字コード PHP=S-JIS ブラウザ=S-JIS 【php.iniの主な設定】 output_buffering = off default_charset = Shift_JIS extension = php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character =none

    • ベストアンサー
    • PHP
  • VB6のテキスト処理 さまざまな文字コード/改行で対応

    VB6のテキスト処理で、Open InputとLine inputを使った場合に 文字コード/改行コードが SJIS/CRLFの時は正しく1行を読み込む事ができますが、改行がLFの時は正しく1行を読み取りません。 改行コードがLFもしくはCRの場合でも正しく1行を読み取る方法はあるのでしょうか? また、文字コードに関してもEUCやUTF-8,JISでも対応できる方法がありましたら教えて下さい。

  • 【unix】nkfで文字コードを変えずに改行コードを変えたい

    unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。

  • 文字化け。

    REDHAT9でwebサーバをたてたのですがhpが文字化けしてしまいます。エンコードで日本語(シフト JIS)を選択すると大丈夫なのですが、一度ブラウザを閉じてまたくると文字化けしてて。 サーバに関してまだまだ無知なので力を貸していただければ幸いです。お願いします。

専門家に質問してみよう