- ベストアンサー
ホームページをアップする時SJISコードのままでも見れるのですが
こんにちは。 ちょっと素朴な疑問なのですが、 ユニックス系のサーバーにホームページをアップロードするとき、コード変換しないでシフトジスコードのまま送っても、インターネットエクスプローラ等のエンコード機能を使えば、文字化けしないで、ちゃんとホームページが見られますよね。 また、メタタグで日本語コードセットをシフトジスにしておけば、文字化けしないで、ちゃんとホームページが見られますよね。 ということはファイルをアップロードする前に、わざわざユニックス系コードに変換しなくても問題ないということですか。 それとも何か不都合があるのでしょうか。 誰か教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
今でもUNIXは多いですよ。ただWindowsのサーバも多いですね。しかしWebページを作る側は、あきらかにWindowsやMacの人が多くなりましたね(インターネット初期に比べ)。 テキストコードはEUCであるべき論者もいますが、HTMLの仕様で考えると、ホストではなく宣言によるものと考えて良い、と私は思っています。 ホストに適したとは、ホストがUNIXでありだからEUCのファイルを置くべきだ、ということでしょうか。 であれば、UNIXに昔のMacのデータも気軽に置けませんし、Windowsのファイルも置けません。 でも実際は、ファイルシステムを受け入れる環境があれば、どのファイルでも置けるはずです。 >ウェブブラウザーが高性能になりコード変換していたのは昔の名残ととらえて良いでしょうか。 名残ではなく、現在も必要な場面はあります。 WebページのHTMLでコードの宣言をせずに、いろんなコードのHTMLファイルを置いているページを見ると、文字化けはおきています。 私は英語版IEを主に使っていますが、たとえばMETAでどのコードか(どの言語か)なにも宣言をしていないのに、日本語のShift-JISになっているページ(つまり単純にWindowsで作ってそのままアップしたページなどです)などでは、ときども文字化けをします。 そのときは、IEのエンコードで表示を日本語にしますので、文字化けは直ります。 同様に、私のWindowsは中国語、韓国語、キリル文字(ロシア)を表示入力可能ですが、HTMLのMETAでそれらの国のコードを宣言していない場合、いくら本文がそれらの国のコードで作られていても、文字化けし、手動でエンコードを直す必要があります。 しかし事前にMETAでその国のコードを宣言しているページは、すんなりこれらの国の言語で表示されます。 つまり、IEなどブラウザは、 <meta ~中略~ charset=★★★"> の★★★で宣言されたコードで、ページを表示しようとする、ということです。 中国語でも、簡体字と繁体字がありますが、★★★のところでGBコード(大陸系のコード)を宣言していれば、簡体字中国語でWebページは表示されますし、★★★のところにBig5コード(広東省などの南部のコード)があれば、繁体字中国語(いわゆる日本の漢字に近い文字)でページが表示されます。 (中国語コードはもっと細かいのですが、わかりやすく2種類のみ書きました) CGIとのからみで、文字コードを統一している(CGIスクリプトがEUCで、ページもEUCなど)ということはあるでしょうね。
その他の回答 (5)
- astronaut
- ベストアンサー率58% (303/516)
> winscpは、なんと英語のソフト 最新版は多言語対応してて,日本語カタログも用意されてるようですけど. http://www.soft.ics.keio.ac.jp/~ozaki/ > xyzzyは ... 多機能すぎて頭が痛くなります 普通に使うにはかなりシンプルで軽いと思うけど,まあ,そこはそれ好きずきなので,色々探してみて下さい. > SSIをつかったページが文字化け 一つのページのコードは統一されてないと当然化けますわな.SSIの出力だけ,ページのコードと違うコードになってるんでせう. そーゆー場合はページごとeucにするのも良し,SSIの出力時にJISに変換するも良し.ご随意に.
お礼
astronautさん、ご返信ありがとうございます。 日本語カタログ入れてみました。 やっぱ日本語いいですね。 今まで使っていたFTPソフトの機能をほとんどカバーしていますので、かなり使えるソフトだと思いました。 ただミラーリングアップロード機能の挙動が、やや不安定に感じました。 これについては、もう少し使ってみて対策を考えたいと思います。 SSIの出力時にJISに変換する、というのはSSIの記述時に何か追記するのでしょうか。 だとしたら多分無理っぽいです(曜日を日本語にするやり方すら未だ知らないのです)。
- astronaut
- ベストアンサー率58% (303/516)
>この2つのソフトはフリーウェアでは、出回っていないのでしょうか。 scp クライアントの代表は、やはり、その名もズバリwinscp でしょう。 http://www.google.com/search?q=winscp&btnG=%8C%9F%8D%F5&lr=lang_ja テキストエディタの方は、フリーソフトが山ほどあるんじゃないかと思いますけどね。私は xyzzy を使わせてもらってます。 http://www.jsdlab.co.jp/~kamei/ >これはiso-2022-jpのコードでアップした場合のみ文字化けするということですか。 いいえ。英語以外全部です。 >またレスポンスヘッダの設定というのを適切な値にすれば、文字化けは解消できるということでしょうか。 はい。AddDefaultCharset を無効にします。 FAQなので、検索すればいくらでも情報があります。 >それとastronautさんは、どのコードでアップしていますか。 iso-2022-jp です。
お礼
astronautさん早速のお返事ありがとうございます。 早速ご紹介いただいた2つのソフトを入れてみました。 winscpは、なんと英語のソフトで使い慣れるには、かなり時間がかかりそうです(というよりインストールして設定するまでにも、かなりの時間を要しました)。 しかし、これもセキュリティーのため、頑張って使いこなせるようになりたいです。 xyzzyは、なるほど名前を付けて保存するときにコードの形式を色々と選べるのですね。 しかし、これも紹介していただいておきながら失礼なのですが多機能すぎて頭が痛くなります(汗)。 「テキストエディタの方は、フリーソフトが山ほどあるんじゃないか」とのことですので ウィンドウズのメモ帳のようにシンプルで軽いソフトを、もう少し探してみたいと思います。 あ、ここまで書いて気づいたのですが iso-2022-jpでアップしたらSSIをつかったページが文字化けしました。 本日は○月○日です となるはずが 本日は○○|です となってしまいました!! うーむ、やはりEUCコードか!?
- astronaut
- ベストアンサー率58% (303/516)
> マックで採用されているコードでしょうか。 マックはどうか知りませんが、E-mailも含め、インターネット上を行き来する日本語文字コードの標準です。 ちなみに、iso-2022-jp は、いわゆる JIS と呼ばれているもののことです。 > iso-2022-jpで記述することにより閲覧者には、 > どのような利点があるのですか。 標準なので、最も多くの環境で文字化けせずに閲覧できることが期待できます。 >(まあ僕のサーバーごとき、攻撃してくるような > 暇人はいないと思いますが) その考えは甘いです。 > サンバかアパッチ2のモジュールを使っての > アップに変更しようと考えたのです。 scp がいいんじゃないですか? windowsクライアントもあるし。 > しかし、これらのアップ方法の場合あらかじめパソ > コン上でのコード変換が必要になり、大きな手間に > なります。 最初から iso-2022-jp が使えるテキストエディタで作れば、全然問題ありません。
お礼
astronautさん、項目ごとに、ご返信どうもありがとうございます。 確かに僕の考えは甘いですね。 今すぐにFTPの使用をやめたい考えです。 「scpのwindows用クライアント」と「最初から iso-2022-jp が使えるテキストエディタ」 両方とも導入したいと思いベクターで探してみたのですが見つかりませんでした。 この2つのソフトはフリーウェアでは、出回っていないのでしょうか。 それと、やはり気になるのは「Apache-2系では、サーバーのレスポンスヘッダの設定により、それでも文字化けすることがありますが」 の部分です。 これはiso-2022-jpのコードでアップした場合のみ文字化けするということですか。 またレスポンスヘッダの設定というのを適切な値にすれば、文字化けは解消できるということでしょうか。 それとastronautさんは、どのコードでアップしていますか。 聞いてばっかりで、すいませんが、よろしければ教えてください。
- astronaut
- ベストアンサー率58% (303/516)
Webページは SJIS でも EUC でもなくて、iso-2022-jp で記述するのが「お行儀が良い」と思います。 もちろんメタタグの指定もしましょう。 Apache-2系では、サーバーのレスポンスヘッダの設定により、それでも文字化けすることがありますが。
お礼
astronautさん、ご返信ありがとうございます。 iso-2022-jpですか。 このコードは、たまに目にするのですが、マックで採用されているコードでしょうか。 isoということは業界標準なのですね。 iso-2022-jpで記述するのが「お行儀が良い」とのことですが、 これは閲覧者に対して「お行儀が良い」ということでしょうか。 iso-2022-jpで記述することにより閲覧者には、どのような利点があるのですか。 ところで、そもそも何で今回こんな質問をしたのかといいますと ウェブページをアップロードするために、今まではFTPソフトを使っていました。 このFTPソフトにはアップ前に文字コードを指定した形式に一括変換してくれる機能があります。 しかしセキュリティー面からみるとFTPには問題があるので(まあ僕のサーバーごとき、攻撃してくるような暇人はいないと思いますが) サンバかアパッチ2のモジュールを使ってのアップに変更しようと考えたのです。 しかし、これらのアップ方法の場合あらかじめパソコン上でのコード変換が必要になり、大きな手間になります。 そこでシフトJISのままアップロードしてしまおうと考えたのです。 ただし、今まで作った全てのHTMLファイル中のメタタグをシフトJISに書き換えることを考えると気が遠くなります(汗)
- briony
- ベストアンサー率29% (323/1090)
昔、まだインターネットといえばUNIXがメインの時代がありました。その後、WindowsやMacなどのパーソナルコンピュータでHTMLファイルをつくるようになり、EUCにしてアップロードするようにいわれていましたね。 その頃は、ブラウザもまだNetscapeでもver.0.xと、とても非力だったことを覚えています。 Mosaicでもうまく日本語を表示できない時代があった記憶があります。ですので、EUCというのは暗黙の了解でした。 その後、HTMLの仕様も変ってきて、ブラウザも進化しました。 現在、HTMLファイルの<HTML>タグのあとに <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp"> など、文書の文字コード(キャラクタセット)を宣言できますが、これを宣言して、実際のファイルも宣言したコードになっていれば、ブラウザはしっかり判断してくれますので、おっしゃるようにわざわざユニックス系コードに変換しなくても問題ないということです。 ちなみにこのページは、 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> と宣言されており、日本語もEUCのようです。
お礼
brionyさん、ご返信ありがとうございます。 ということはホストに適したコードに変換しなくても精神的な問題以外は何も不都合がないということですね。 今ではウェブブラウザーが高性能になりコード変換していたのは昔の名残ととらえて良いでしょうか。 書き忘れたのですが以前、学校の先輩がCGIがどうだとかSSIがどうだとかいう理由で面倒だがコード変換してからアップしているという話を小耳に挟んだもので、ちょっと質問してみました。 インターネットといえばUNIXがメインの時代とありますが、現在はUNIXがメインではなくなったということですか。 聞くところによるとウィンドウズXP機でもウェブサーバーを立てることができるようですね。 Mosaicは使ったことがないのですが調べたところ昔は猛威を振るっていたようですね。 ちなみにEUCコードでアップする利点?の1つに、インターネットエクスプローラでソースを表示しようとしても文字化けして、ソースがばれにくいことが挙げられますね。 教えてgooでは、そのような狙いがあるのでしょうか。
お礼
brionyさん、お返事ありがとうございます。 なるほど、今はパソコンでページを作ってホストにアップロードするという形式が当たり前ですが インターネット初期はホスト側で直接ファイルを作っていたということですね。 ホストに適したコードとはテキストエディタで開いたときに文字化けしないコードだと思います。 すなわちユニックス系ならEUCコードで送るのが適切だと思いました。 しかし、テキスト以外のMacやウィンドウズのファイルも置けるということで、文字コードごとき、それほど深刻に悩む問題でもないといったところでしょうか。 各国の言語を使う場合でも、メタタグを記述しておけば、ブラウザーが自動的にコードを選択してくれるということですので 今後は、最も労力が少ないシフトJISでアップしようかと思います。 CGIスクリプトもパソコン側で作成してしまえばシフトJISに統一されるので大丈夫ですね。 ところでbrionyさん、英語版IEを使ってらっしゃるとは、すごいですね。