見えない文字「U+0008」の潜伏場所をSublimeTextとCotEditorで暴く方法

Nu Html Checkerの解析結果画面(エラー有り)

Nu Html Checker」というW3C(World Wide Web Consortium:インターネット関連技術の標準化団体)が無償で提供するHTMLチェックツールがあります。これを使用した時に、上の画像のようなエラーが過去の投稿記事で発生していました。

「Forbidden code point U+0008.」とエラーが出ているので、おそらく「U+0008」という文字を使用してはいけないようです。

このエラーが発生する箇所として以下が指摘されています。

部ツールとして「P4Merge」を使うと横並びで画面いっぱ

しかし、それに該当しそうな文字はこの文字列中のどこにも見当たりません。※既にエラーとなる文字は記事から削除しているため、現在エラーは発生しません。

そこで、私のmacにインストールされているテキストエディタ「SublimeText」と「CotEditor」を使って調べてみることにしました。

ちなみにこの「U+0008」という文字について、こちらの記事に詳しく書きました。この文字を出力させる例も示しています。

「U+0008」という文字は、Unicodeという文字集合の中の1つの文字で、BackSpace(後退)を表現しています。ターミナル上では、この文字は入力カーソルの現在位置を後退させる意味を持ちます。

SublimeTextで見えない文字の「位置」を暴く

「SublimeText」というエディタは不可視文字を表示してくれる機能があります。

上記の文字列をこのエディタにコピペして見てみると、BSという見慣れない文字がeの間に表示されています。おそらくこれがエラーの原因かと思います。いつの間に紛れ込んでいました。

SublimeTextで「U+0008」を表示

これでまず原因らしい文字の位置が分かりました。

CotEditorで見えない文字の「正体」を暴く

「CotEditor」は右上の[情報を見る]ボタンを押すと右カラムが表示され、選択した1文字が何を表すかを表示する機能があります。

このエディタではSublimeTextのようにBSの文字は表示されません。ここで、eの間にある見えない文字を1文字選択すると(選択しているように見えませんが)、以下のように表示されます。

CotEditorで「U+0008」を表示

これで見えない文字の正体がUnicodeの「U+0008」である分かりました。この「U+XXXX」で表す文字はUnicodeのコードポイントと呼ばれています。

そしてBSを含む記事からそれを削除して更新すると、上記のエラーを解消することができました。やはりこの文字がエラーの原因だったようです。

Nu Html Checkerの解析結果画面(エラー無し)

追記:CotEditorでも不可視の「U+0008」を表示できます

CotEditorの設定をいじっていたら、CotEditorがSublimeTextと同様に不可視文字のU+0008を表示できることがわかりました。

まず、CotEditorのメニューバーから[環境設定]を選択します。

CotEditorのメニューバーから「環境設定」を選択

[表示]タブを選択し、[不可視文字を表示]と[ほかの不可視文字]にチェックを入れます。

CotEditorの表示設定から不可視文字表示を設定

以下で?という変な表示になっていますが、青く選択している部分が「U+0008」です。

CotEditorで不可視文字の「U+0008」を表示

これで、CotEditor単体でU+0008の位置を明確に確認することができるようになります。

まとめ

SublimeTextとCotEditorを用いて「U+0008」という文字の「位置」と「コードポイント」を解決し、HTMLチェックツールのエラーを解消しました。

何かよく分からない文字が出てきた時にはこれらのエディタにコピペしてみると、その正体を突き止めるヒントを得ることができます。