Perlのcgiを中国語で表示可能にしたい

このQ&Aのポイント
  • Perlのcgiを「utf-8」で保存し、Perl内のhtmlも、「<meta http-equiv="Content-Type" content="text/html; charset=utf-8">」などのutf-8の設定にしていますが、ffftpでutf-8の文字コードで転送すると、「※CGI もしくは SSI が正しく動作していません。」と表示されてしまいます。
  • 転送時の設定を「ホストの漢字コード 無変換(SHIFT-JIS)」、「ファイル名の漢字コード SHIFT-JIS」にすると、cgiは動作しますが、文字化けします。→ 黒い菱形に?マークの文字化け。
  • 上記の問題を解決する方法についてアドバイスをお願いします。
回答を見る
  • ベストアンサー

Perlのcgiを中国語で表示可能にしたい

OS:Windows7でサーバーはロリポップを使用しております。 Perlのcgiを「utf-8」で保存し、Perl内のhtmlも、「<meta http-equiv="Content-Type" content="text/html; charset=utf-8">」などのutf-8の設定にしていますが、ffftpでutf-8の文字コードで転送すると、「※CGI もしくは SSI が正しく動作していません。」と表示されてしまいます。 ffftpのホストの設定での、文字コードは「ホストの漢字コード Unicode(UTF-8)」、「ファイル名の漢字コード Unicode(UTF-8)」にしています。 何パターンか試してみましたが、ffftpの転送時の設定が「Unicode(UTF-8)」だと、「※CGI もしくは SSI が正しく動作していません。」と表示されるみたいです。 転送時の設定を「ホストの漢字コード 無変換(SHIFT-JIS)」、「ファイル名の漢字コード SHIFT-JIS」 にすると、cgiは動作します。但し、文字化けします。→ 黒い菱形に?マークの文字化け。 どうすれば、上記問題を解決できるでしょうか。 アドバイスをお願いします。 m(_ _)m

  • mcse
  • お礼率55% (148/266)
  • Perl
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

本家のFFFTP には、「ホストの漢字コード Unicode(UTF-8)」という設定は存在しないのですが、 どのFFFTPを使っていますか? おそらく独自にUnicode対応改造された改変版を使用されているのだと思いますが、 症状からすると、BOM付きのUTF-8でアップロードしてしまっているように見受けられます。つまり、アップロードソフトの漢字コード変換の問題です。 BOMとは、Unicode(UTF-16)において、ファイルの先頭に付加されて、バイトオーダを識別するための特殊なコードです。本来UTF-8には不要なものであり、UNIX系のサーバなどでは、これが付いているとCGIのファイルとして認識できなくなってしまうのですが、 Windows上のメモ帳など、一部のソフトでは、UTF-8でもBOMを付けるものが存在します。 もし、「UTF-8N」という設定があるのであれば、それで試してみてください。 (規格で定められた名称ではありませんが、UTF-8にBOMを付ける仕様のソフトでは、BOMを付けないものをUTF-8Nという名前の別設定で用意している場合があります) そういう設定がないのでしたら、最初から Perl のファイルを UTF-8N(正しいUTF-8)で作成・編集し、無変換設定でアップロードするしかないかと思います。 とりあえず、たとえば無料のテキストエディタでも、たとえば EmEditor Free なんかは、正しいUTF-8にも対応しています。 http://jp.emeditor.com/modules/download2/rewrite/tc_5.html

mcse
質問者

お礼

丁寧なご回答ありがとうございました。 BOMという知識は全くなかったので、なるほど!と感動しました! 早速、EmEditorで試したところ、うまく中国語が表示されました!!!!!! (^^) ありがとうございました!m(_ _)m ※ただ、ファイルの読み込みは上手く行きましたが、読み込んだ後、ファイルに書き出そうとすると文字化けしているので、別途、質問を上げる予定です。もしお分かりでした、またご教示お願いします。

関連するQ&A

  • unicodeをシフトJISにしたい

    <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> とHTMLに入れているのですが、アップロードするとunicodeになっています。 どうするとシフトJISに戻せるのでしょうか? 使用している転送ソフトはFFFTPです。 どうぞ宜しくお願い致します。

  • 携帯のホームページを楽造で作ってFFFTPにアップロード

    すると・・・そのホームページが文字化けします。そのページでエンコードで自動にするとそのページは直りますが次のページはダメです。で、また一からホームページを開けると全部文字化けしています。どうしてでしょうか?よろしくお願いします。FFFTPの設定の文字コードを無変換(ホストの漢字コード)SHIFTーJIS(ファイル名の漢字コード)にしてみたり、漢字コードの変換なしを押したりいろいろしてみたんですが直りません。教えてください。

  • CSSでダウンロードすると文字化け

    ホームページ制作しています。 cssをサーバーからFFFTPでダウンロードすると、日本語コメントが文字化けしてしまいます。 最初に「@charset "SHIFT_JIS";」と記述し、FFFTPでは「漢字コードの変換なし」にしています。 試しに、ホストの漢字コードをEUCとJISでもダウンロードしてみましたが、同様です。 どう対処すればよいでしょうか?

  • CGI(Perl)の取り扱いについて

    Macを使用しております。 現在、FlashサイトでCGIを利用したメールフォームを作成中なのですが CGIへの受け渡しの段階で、フォームがうまく動作してくれません。 プログラミングの知識が無いため、CGIファイルそのものは サンプルサイトからダウンロードさせて頂いたものです。 そこで、Macに詳しい方にお聞かせ願いたいのですが 書類の文字コード/改行コードの設定、保存時の設定、設置場所、 最適なテキストエディターやFTPソフトなど、Mac上でCGIを扱う 場合の注意点やアドバイスがありましたら宜しくお願い致します。 また、サイト自体の文字コードは「UTF-8」に設定しておりますが CGIファイルなど、文字コードは全て統一しなければなりませんか? 初歩的な質問かとは思いますが、何卒よろしくお願い致します。

    • ベストアンサー
    • CGI
  • PHPの文字コードどのように設定すればいいですか?

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

    • ベストアンサー
    • PHP
  • 文字コードってUTF-8が主流に?

    文字コードについては、UTF-8が主流になりつつあるってネットで観ました。 文字コードを検索すると次のような説明があります。 (UTF-8のエンコード) UTF-8は、UnicodeとASCIIコードを混在させるための規格です。 (シフトJISコード) シフトJISコードは、SJISとも呼び、Microsoft社が決めたコードでWindows95やMS-DOSやMacなどで使用されています。 その上で質問です。 1、 UTF-8が主流になるってことは、Windows、MacがUTF-8に方向転換するってことでしょうか? 2、 仮にUTF-8が主流になっても、サイトに <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> と記述していれば文字化けなく表示されるのでしょうか? 今の時点では判断できない質問なのでしょうか・・

  • 文字コードの違い

    レンタルサーバを借りてHPつくる場合に 文字コードはなににすべきでしょうか? 借りているサーバではJISに初期設定がなっていますが サイトのサンプルなどではUTF-8が多いようです (ユニコードだと思ってます) CGIなどを使う予定ですがJIS、UTF-8またはそれ以外 の文字コードはどのような違いがあるのでしょうか? 例えば外国語で表示する場合はユニコードのほうがいいとか 違いとメリットなどあれば教えてください

    • ベストアンサー
    • HTML
  • 文字コードsjisをUTF8に書き換えたい

    CGIの勉強中の者です。 文字コードはSJISで保存しているCGIをUTF8コードに換えるには何が必要でしょうか? HTMLならmeta内をSJISからUTF8に変更し、TeraPadなどのテキストエディタでUTF8に保存すればオッケーなんですが。 CGIの場合はHTMLと違って、換えるには複雑なのでしょうか? CGIプログラムの中では以下の「sjis」を「UTF8」に書き換えし、UTF8で保存しましたけど、文字化けが出てます。 <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; 宜しくお願いします。

    • 締切済み
    • CGI
  • javascriptで文字コード変更

    いつもお世話になっております。 今回はjavascriptの文字コードについてお聞きしたいです。 現在、CGIの応答でテキストを受けて、それをjavascriptで変換して表示するというものを作っていますが、この応答に漢字、ひらがななどが入ると文字化けしてしまいます。 調べてみると、CGIの応答はshift-jisで返しているのですが、javascriptはUTF-8しか扱えないと書いてありました。 なんとか応答のCGIはShift-Jisを送り、javascriptでうまく表示できるようにしたいのですが、方法はないでしょうか? ご教授願います。

  • cgiプログラムについて

    よろしくお願いします。 現在複数のページを作成しております。 一つはcharset=shift_jis">になっております。 もう一つはutf-8になっております。 charset=shift_jis">のページにメールフォームを使っていますが そのcgiをutf-8には使用できないのでしょうか? よろしくお願いします

    • ベストアンサー
    • CGI

専門家に質問してみよう