• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perlのcgiを中国語で表示可能にしたい)

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は動作しますが、文字化けします。→ 黒い菱形に?マークの文字化け。
  • 上記の問題を解決する方法についてアドバイスをお願いします。

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

  • ベストアンサー
  • 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 ※ただ、ファイルの読み込みは上手く行きましたが、読み込んだ後、ファイルに書き出そうとすると文字化けしているので、別途、質問を上げる予定です。もしお分かりでした、またご教示お願いします。