さくらレンタルサーバーのPerlの文字コードはUTF-8Nにしよう
#!/usr/bin/perl を UTF-8 で宣言すると エラーになります
なぜ 判明したかというと
KENTWEBさんの 便利な Pchec.cgi を さくらのサーバーに置きました
フリーソフトで 便利です
設置するときに cgiのパス・・・・ さくらは #!/usr/bin/perl
あとは パスワードを適当に test とか入れてね
このcgiのコードは SJIS で成り立っています
KENT WEB ユーティリティ
http://www.kent-web.com/utility/index.html
で ルートに置いたこの cgiが開いて 自分のが開かないんで判明したわけです
問題は #! が危険な文字 ・ソ に。。。
Pchec.cgiによると 私のcgiの構文は正しいと出ました
さくらからの返事は・・・以下
お問い合わせいただき誠にありがとうございます。
さくらインターネット カスタマーセンターの松浪と申します。
お知らせいただきましたURLへアクセスしましたところ「Internal Server Error
」という表示となっておりましたが、こちらについては間違った設定などに遭遇す
ると表示されるエラーとなります。
(だから 聞いているんですけど)
■ オンラインマニュアル ウェブページのエラーメッセージ
http://sakura.ne.jp/support/manual/rs/errmsg_web.shtml#500
CGIプログラムを設置される際によくある設定の誤りについては以下のような
事例がございます。
パーミッションが適切に設定されていない
「さくらのレンタルサーバ」では、プログラムやフォルダのパーミッション
を755(rwxr-xr-x)としていただく必要がございます。777(rwxrwxrwx)では
正しく動作しませんのでご注意ください。
(イヤだけど 755でせっていしましたが・・・)
サーバへ転送する文字コードに誤りがある
FTPでの転送時に用いられる文字コードと、ファイルを表示する(ファイルを
読み込む)際に用いられる文字コードが一致しません場合、正しく動作しな
い場合がございます。
(そこは きちんとしていますとも・・・)
CGIプログラムの設定内容に誤りがある
「さくらのレンタルサーバ」に関するサーバ仕様については下記URLにてご
案内しております。設置いただくCGIプログラムによっては、適宜弊社サー
バの仕様に沿うよう、設定いただく必要がございます。
(Pchec.cgiによると 私のcgiの構文は正しいと出ました)
■ オンラインマニュアル CGI・PHPの設置に関わるサーバ情報一覧
http://www.sakura.ne.jp/support/manual/rs/tech_cgi.shtml#com
「さくらのレンタルサーバ」ではお客さまにて設置いただくCGIプログラムに
ついて約款に反しない限り制限を設けておりませんので、サーバ仕様に沿ったも
のであればご自由に設置いただけますが、弊社ではお客さまにて設置いただくウ
ェブコンテンツについて関与させていただいておらず、本件のようなお問い合わせ
につきましてはサポート対象外となります。ご了承ください。お手数ではござい
ますが、一般に広く配布されております簡単なCGIプログラム等の動作が行える
かなどの方法で原因の切り分けを行いご様子を見ていただけますでしょうか。
よろしくお願いいたします。
尚、perlによるutfの取扱いについて、弊社にて調べましたところ、下記URLに
て解説がございました。よろしければご参考ください。
■ Perl 5.8でUTF-8の文字コードを扱う
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/perl/perl_utf.html
■ OKWaveコミュニティー UTF-8でperlを書きたい
http://okwave.jp/qa4048903.html
以上、よろしくお願いいたします。
今後ともさくらインターネットをよろしくお願いいたします。
─── さくらインターネット株式会社 ──────────────────
■カスタマーセンター (ご利用サービスについてのお問い合わせ窓口)
ウェブ : http://support.sakura.ad.jp/
電話 : 0120-775664 (通話料無料) 平日 10:00〜18:00
(#!/usr/bin/perl からして 文字化けしているんですけど・・・)
自力で解決策を発見 !!!
自力といっても このサイトを見つけただけですが・・・
Shift-JISでUTF-8なPHPファイルを表示すると「・ソ」と出る件
庭にハグ
http://gagago.cocolog-nifty.com/blog/2009/05/shift-jis.html
UTF-8には「UTF-8」と「UTF-8N」がある。
違いは、BOM(Byte Order Mark)があるかないか。「UTF-8」がBOMつき。
BOMつきUTF-8でPHPファイルをつくって、Shift-JISのhtmlで読み込むと
「・ソ」などと表示される。
これはUTF-8のファイルの先頭にBOMのあかし
「0xef, 0xbb, 0xbf」がついてしまうため。
「UTF-8」を「UTF-8N」で保存しなおすと正しく表示される。
保存しなおすことができるエディタはTeraPadをつかってみた。大丈夫くさい。
本当に 簡単に 解決しました! 感謝ですっ
ここに 証拠がっっっっ!!!