電子書籍の厳選無料作品が豊富!

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

A 回答 (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 …
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございました。

BOMという知識は全くなかったので、なるほど!と感動しました!

早速、EmEditorで試したところ、うまく中国語が表示されました!!!!!!
(^^)

ありがとうございました!m(_ _)m

※ただ、ファイルの読み込みは上手く行きましたが、読み込んだ後、ファイルに書き出そうとすると文字化けしているので、別途、質問を上げる予定です。もしお分かりでした、またご教示お願いします。

お礼日時:2011/05/03 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!