Macのテキストエディットやメモで入力される制御コード

macOS (Mojaveで確認) のテキストエディットやメモ、メールといった、標準テキスト入力を使ったアプリケーションでは、option や ctrl キーの組み合わせによって特殊な制御文字コードが入力される場合があります。これらは目に見えなかったり単なる改行に見えますが、処理するプログラムによっては思わぬところで文字化けや表示が崩れる原因になることがあるので、注意が必要です。

なお、通常の改行は LF (U+000A) です。

ctrl + enter (メモ帳などでは shift + enterも同様)

Unicode で定義された Line Separatpr (U+2028) が入力されます。
これは箇条書きなどの中で改行するために使われているようです。

ctrl + option + enter

CR (U+000D) が入力されます。単独でも改行されますが、直後に enter を押すと CR+LF となってこれも一つの改行としてレンダリングされます。

ctrl + option + アルファベット

C0 Control Codeに定義された制御コードが入力されます(記号は英語キーボードの位置に準拠するようです)。以下に一覧があります。

C0 and C1 control codes - Wikipedia

参考: Unicodeにおける空白文字

空白文字の一覧は以下にあります。

Whitespace character - Wikipedia

Line Separatpr (U+2028) はHTMLだと < BR > に相当するものとのこと。
Paragraph Separatpr (U+2029) はHTMLだと < P > に相当するそうですが、入力する方法は見つかりませんでした。
(といっても、例えばWebブラウザからこれらのタグのレンダリング結果をコピーしても単なる LF になります。)

プログラミング言語によって、これらが改行扱いされるかは異なるようです。場合によっては、これらが改行として扱われることを想定していないコードにおいて脆弱性を引き起こす原因になることもあるとか。