CGI-BBS > 基礎 > その他 > CGIのHTML


カレッヂ
カレッヂ


質問者 UA  投稿日 2/18(日) 12:52:16
質問ばかりで申し訳ありません
が、どうしても確認しておきたいんです
CGIでHTMLを表示する際のことでなんですが

一つ目は
変数の前に全角の空白をあけるとおかしくなって
(ソースの一部が表示されてしまったりします)しまいます

半角の空白、もしくは空白なしならちゃんと表示されるのですが
どのような理由が考えられるでしょうか?


二つ目は
掲示板とかで
訪問者がフォームから半角カタカナを使うのはまずいと言うのは解ったのですが
作者がHTML自体の表示に半角カタカナを使うのはどうなのでしょうか?
知識が足りなく質問がわかりにくいかもしれませんが
例えば

掲示板の題名を「ここはたのしい掲示板です」→「ここはタノシイ掲示板です」

とか

「お名前:」→「オナマエ:」

こんな感じでちゃんと表示されるのでしょうか?
自分のブラウザでは確認できたのですが
ブラウザによっては文字化けしてしまうのでしょうか?
こう言ったところでも使わない方がいいのでしょうか?

どうかご教授ください
回答者 上沼羊相談員  [削除]  投稿日 2/18(日) 19:12:18
http://wakusei.cplaza.ne.jp/twn/wwwqa1.htm#CgiMojibake

文字化けについてもっと詳しく書かれているページがあったのですが
探しても見つかりませんでした。
もう一回探し直してみます。
回答者 赤井羊相談員  [削除]  投稿日 2/19(月) 10:37:37
見つかりました。
http://www.din.or.jp/~ohzaki/perl.htm#JP_EUC_JP
です。
回答者 まさ  [削除]  投稿日 2/19(月) 12:11:42
>一つ目は
> 変数の前に全角の空白をあけるとおかしくなって
>(ソースの一部が表示されてしまったりします)しまいます

>半角の空白、もしくは空白なしならちゃんと表示されるのですが
>どのような理由が考えられるでしょうか?

これはおっしゃっている意味がよくわかりませんね。

スクリプトの中の変数の前に全角スペースを入れると、エラーが出て動きませんからこれでは
ないですよね。

もしかしてこのようなことを言ってるのでしょうか?

print "$a$b\n";
これなら正常に表示されるが、
print "$a(全角スペース)$b\n";
これがおかしくなる。

もしもこれならば、文字コードをSJISで書いているからです。EUCで書けば直りますが、
どうしても嫌ならば、以下のようにすれば直ります。

print "$a" . '(全角スペース)' . "$b\n";

-----------------------------------------------------

>二つ目は
>掲示板とかで
>訪問者がフォームから半角カタカナを使うのはまずいと言うのは解ったのですが
>作者がHTML自体の表示に半角カタカナを使うのはどうなのでしょうか?

これは何か誤解なさっているような感じですが、インターネットで半角カタカナを使っては
ダメです。つまりWeb(ホームページ)、ニュース、メール等、インターネットの環境では
半角カタカナを使ってはいけません。もしもそのようなサイトがあるなら、そのサイトが間
違っているのです。

例え正常にブラウザーで表示されているからといって使ってはダメです。それは偶然に表示
されていると考えた方がいいでしょう。

何故ダメなのかと言うと、これは非常にややこしく、専門的になるので、あまり詳しく書きま
せんが、日本語には主に、EUC、シフトJIS、JISと言う文字コードがあります。
インターネットはもともとUNIX主体でした。UNIXの環境で一番多く採用されいたコード
体系がこのEUCなのです。

JISやシフトJISとの大きな相違点は、 半角カタカナが冷遇されていることです。 JIS漢字
コードの各バイトのMSBを1にすることにより漢字を導入したため、 これと重複する半角カタ
カナは補助的な扱いとなりました。

特長としては、エスケープシーケンスがない、 第1バイトを見ただけで文字種がわかる、
漢字の第2バイトがASCIIと重複しない、 ASCIIと漢字のバイト数の比率が文字の幅と一致す
る、 などシフトJISと類似した点に加えて、 JISとのコード変換が容易なことがあげられま
す。

ただし、バイト数は半角カタカナまで考慮すると複雑となります。 事実、EUCを採用したシ
ステムでも、補助漢字までサポートしている例は非常に少なく、 半角カタカナのサポートも
つい最近まではなおざりにされてきました。 インターネットのメールやニュースでは、
現在でも半角カタカナの使用がタブーとされていますが、 これは、EUCを採用しながら半角
カタカナをサポートしていないシステムが多かったためでもあります。

また電子メールなどではよく iso-2022-jp を用います。iso-2022-jp は下記のコードの総
称と思ってください。

ASCII
JIS X 0201-1976 Roman Set
JIS X 0208-1978
JIS X 0208-1983

このリストの中に「JIS X 0201 片仮名」が含まれていないため、「電子メールでは半角片
仮名を使ってはいけない」となります。

回答者 まさ  [削除]  投稿日 2/19(月) 12:20:46
ちょっと書き忘れましたが、なぜ半角片仮名を使わないといけないのでしょうか?

具体的な理由を書いてもらえると、回答しやすいのですが。

回答者 羊相談員  [削除]  投稿日 2/19(月) 13:48:52
http://wakusei.cplaza.ne.jp/twn/wwwxx042.htm

↑半角カタカナに関してはこんな意見もあります。
(「■半角カタカナを使用することができます」の欄です)


「半角カタカナは一部の環境で正常に処理できない」
というのを逆手にとった考え方です。
質問者 UA  [削除]  投稿日 2/21(水) 21:27:24
詳しい説明感謝します
ありがとうございました

ネット上でここまで半角カタカナが嫌われているとは・・驚きです
でも常識なんですね

それから「なぜ半角カタカナを使わなければいけないか」と言うご質問ですが
私のページへ書き込みする皆さんが文字絵を描くのでできれば形を崩したくなかったのです
  ↑(どこからか無料でもらってきたCGIスクリで、このBBSでは
    半角カタカナが表示できました)

全角スペースをあけるとソースの一部が表示されてしまう問題も解決する事が出来ました
本当にありがとうございました

でも実はまだ半角カタカナがあきらめられなかったりして・・・
回答者 まさ  [削除]  投稿日 2/22(木) 06:25:57
半角カタカナは嫌われているというか、今のところ使えない仕様だと思った方がいいでしょう。
しかしこれは私見ですが、このような仕様はとても古いものです。ほとんどUNIX全盛期の負の
遺産のようなものです。今やインターネット環境はUNIXだけのものではないですからね。
わたしとしてはいずれは使えるように変えて行くほうがいいような気もしますが。そして文字
コードもひとつに統一して欲しいです。

>それから「なぜ半角カタカナを使わなければいけないか」と言うご質問ですが
>私のページへ書き込みする皆さんが文字絵を描くのでできれば形を崩したくなかったのです。

これはもうあきらめるしかないでしょう。
形が崩れるのは仕方がないですね。極力それを抑える方法もありますが、根本的な解決方じゃ
ないです。そもそもブラウザーの違いで若干見え方が違いますよね。あるいは文字の大きさ
自分で変えられたりもします。そうなるともうどうしようもないと思います。

あらゆる環境で同じように見せようとすれば、画像にするしかないです。
しかしこうすると画像OFFにしてる人はどうするのかと言う問題も出てきます。

所詮は何をしても同じだと思いますので、WEBとはそう言うものだと思った方がいいです。
ですから半角カタカナを使うのは諦めましょう。
回答者 羊相談員  [削除]  投稿日 2/22(木) 22:27:28
別にあきらめることはないと思いますが、
半角カタカナを使うと正常に表示できない環境の人や
インターネットでの半角カタカナの使用自体を嫌っている人もいます。
しかし、逆にiモードなどのように半角カタカナの使用が望まれるような環境もあります。

このように半角カタカナにはいろいろな問題があるので
よく注意してから使うべきだと思います。
質問者 UA  [削除]  投稿日 2/24(土) 16:17:40
相談にのってもらい感謝します
いろいろ考えましたが半角カタカナはひかえることに決心しました
ホームページはみれてなんぼですからね
本当にありがとうございましたまたお願い致します

このページは終了したので返信(回答)は書きこめません

Web裏技