- ベストアンサー
CGI.pmでHTMLのネームエンティティを出せるか
CGI.pmでHTMLのネームエンティティを出力できるのでしょうか。 例えばescapeHTML()は'<'や'>'を'<'や'>'へ変換してくれますが、 半角スペースは' 'へ変換してくれません。 半角スペースを使いたい場合、print(' ');のように書くしかないのでしょうか。 それともCGI.pmで何か専用の関数が用意されているのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
本当にそれはnon-breaking spaceでなければならないのでしょうか? SPACE(U+0020)のままであるべきものならCSS 2.1の white-spaceプロパティを使う事も検討してください。 検討し,non-breaking spaceであることが必須であるならば,以下続けます。 >半角スペースは' 'へ変換してくれません。 指している文字が違うので変換されてはいけません。(前者はU+0020,後者はU+00A0) 結論から言えば実体参照を使う必要はなく,そのままU+00A0の文字を出力してあげればよいようです。 #ただ、現状、ブラウザの実装としてはnon-breaking spaceを出力したファイルを読み込ませたときにユーザーがその文字をテキストエディタにコピーしたときにはU+00A0ではなくU+0020になります。
お礼
himajin100000さん、ご回答ありがとうございます。 なるほど' 'は私がいつも使っている半角スペースとは違うものなのですね。。。 そういうわけで私もCSSを使う方針をとりたいと思います。 そこで新たな質問をさせていただきたいのですが、CSSもCGI.pmを使って簡潔に書けるのでしょうか。 私としてはHTMLファイルに書いた連続した半角スペースをブラウザーが勝手に1個のスペースに置換してしまうのは気に入らないので、 HTML中に存在する全ての半角スペースを、そっくりそのまま表示させるようにしたいです。 CGI.pmでこのためのCSSを書く方法をご存知でしたら、是非とも具体的に教えてください。