【HTML】制御文字をいろんなブラウザで表示させてみよう


IEでTAB(U+0009)を見ると勝手に半角スペース(U+0020)に変えられてる件。
他のブラウザや制御文字はどーなの?ってのを調べた。

 


 


 



Wikipediaをもとになんとなく制御文字っぽい範囲、つまり

  • U+0000(NUL)~U+001F(US)
  • U+0080(PAD)~U+00A0(NBSP)

をHTMLにそのコード値のまま出力してみて、各ブラウザで表示した時どうなるか調べてみることにする。
ほぼ全てのコードは、ブラウザで表示したときの見た目じゃそれがどんなコード値で表示されているのかは全くわからないので、
選択してコピってテキストエディタに張り付けて、どうなるかを確認する。
以下、結果。OSはいずれもWindows7.

No.コード値IE(11.0.9)の結果Google Chrome(59.0)の結果Fire Fox(50.1.0)の結果備考

1 U+0000(NUL)~
U+0008(BS)
元コードのまま この範囲は3ブラウザ共通
2 U+0009(TAB) U+0020(半角スペース) 元コードのまま U+0020(半角スペース) IEだけかと思いきや、FFでも変わった。
3 U+000A(LF) 消滅 これは3ブラウザ共通で「消滅」する。
まじでかかけらもなく「消滅」する
(ブラウザで表示した値をコピっても
 その中にこのコードが存在ない)
まあ改行コードだしねえ…
3 U+000B(VT) 消滅 元コードのまま IEだけ消滅する。
そもそもこのコードなんだかわからん…
調べたら「LINE TABULATION」って
言うらしいが…何に使うのだろう?
4 U+000C(FF) 消滅 元コードのまま IEだけ消滅する。
これもなんのためのコードなんだかわからん…
調べたら「FORM FEED」って
言うらしいが…何に使うのだろう?
5 U+000D(CR) 消滅 U+0020(半角スぺース) IEだけ消滅する。
他2ブラウザは半角スペースになる。
CRはLFと違って生きるケースがあるようだ。
ただ、CRだけ生かすってのも、
改行コードの扱いとしては
変な感じするけどな~
6 U+000E(SO)~
U+001F(US)
元コードのまま この範囲は3ブラウザ共通
7 U+0080(PAD)~
U+009F(APC)
元コードのまま この範囲は3ブラウザ共通
8 U+00A0(NBSP) U+0020(半角スペース) 3ブラウザ共通で半角スペースになる。

 




最初はTABから始めた調査だったが、ことTABに限って言えばFFも同じだったから、多数決的にいうとむしろGoogle Chromeのほうが少数派だな。
TABのブラウザ表示の業界スタンダードはなんなんだろ。
個人的にはGoogle Chrome寄りの心象なのだが(勝手に違う文字に変えちまうのはなんとなくおかしい気もするから)。

それを抜きにしてもIEは消滅範囲が多いな、という感覚である。
U+000B、U+000Cは完全に改行コードのとばっちりではないかと思えてならない。
「U+000A~U+000Dは全部除去」とか乱暴なことやってんじゃないのかあ~?
(まあU+000BとかU+000Cを生コードで表示してほしい強い要求があるわけでもないんだけどね)