10
11

More than 5 years have passed since last update.

Windows Chrome で見える L SEP とは?

Posted at

株式会社オズビジョンのユッコ (@terra_yucco) です。

きょうのネタ

某社から受信したセミナーの案内メールに謎の文字が見えた。

謎の文字

L SEP
image.png

実メール

あちこち伏せてますが、あちこちに L SEP が登場しています。

image.png

これは何なのか?

調べてみたところ、改行コードの一種。

改行コードのいろいろな種類

LF, CRLF, CR くらいしか知らなかったのですが、歴史的なことも含めるとかなりいろいろなパターンがあったようです。
愛用のサクラエディタでもそのあたりの入力ができたようで二度衝撃。

入力改行コード指定

以下の表は上記リンク先から引用して整形したものです。

種類 説明 表記
CRLF Windows/DOS で一般的な改行コード U+000D U+000A, \r\n
LF (Line Feed) Unix/Linux で一般的な改行コード U+000A, \n
CR (Carriage Return) 旧 MacOS で一般的な改行コード U+000D, \r
NEL (Next Line) Unicode の Next Line U+0085
LS (Line Separator) Unicode の行区切り文字 U+2028
PS (Paragraph Separator) Unicode の段落区切り文字 U+2029

改行コードについて

取り扱える改行コード
CR00LF00 ( 0d 00 0a 00 ) 廃止しました。(sakura:1.3.4.1)
LFCR ( 0a 0d ) 廃止しました。(sakura:2.0.0.0)

(Д) ゜゜
世の中は広いです。

共通設定 『編集』プロパティ

この設定をすることで、サクラエディタでも簡単に各種特殊改行コードで遊べそうだったので、やってみました。

画像は上記ページから拝借しています。
その他 > 改行コード NEL, PS, LS を有効にする (O) にチェック。
image

この設定をすると、下部ステータスバーを右クリックしたときに選べる選択肢が以下のように増えます。
image.png

いろいろな改行コードを表示させてみる

環境など

  • Windows 10 Home
  • Google Chrome 74.0.3729.131 (Official Build) (64 bit)

CRLF, LF, CR

どれも無難に解釈してくれて特に面白いことはなかったです。

LS

冒頭の L SEP が再現されました。なお、この四角のことを豆腐 (Tofu) って言うそうです。

image.png

PS

Tofu が P SEP になりました。

image.png

NEL

Chrome にサジを投げられたのか、文字の入らない Tofu になりました。

image.png

Tofu を防ぐには

上記の結果から考えるに、きっかけのセミナーメールを書いた方は、何らかで LS が入力されるツールを使っていたのだろうと思います。
(その割には入っていた場所と入っていない場所があったりしたのが謎)

例えばメール送信ツールに以下のようなコードが噛まされていたら、きっとみんな幸せになったんだろうな、という話。

入力ファイルから特殊改行コードを除去
<?php

if ($argc < 2) {
    return;
}

$text = file_get_contents($argv[1]);
$hex = bin2hex($text);
$target = [
    'e280a8', // LS
    'e280a9', // PS
    'c285',   // NEL
];
file_put_contents(
    $argv[1] . '.removed',
    hex2bin(str_replace($target, '', $hex))
);

※一度 16 進数文字列に変換して置換し、再度戻すという力技なので、もっといい方法があるよ、というコメントお待ちしております!

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11