Windows環境で、テキストファイル(設定ファイル、ログなど)をテキストエディタで開いたときに、改行が無視されて1行で表示されることがあります。検索を使って無理やり参照する破目になったり、編集がやりにくかったりします。
テキストの改行が無視されて1行で表示される原因と対応方法について考えてみます。
#原因
改行を表す文字はOS毎に差異があります。
※文字コードはSJIS、UTF8
文字 | 文字コード | OS |
---|---|---|
CR + LF | 0x0d0a | Windows |
LF | 0x0a | Linux、Mac(OS X以降) |
CR | 0x0d | Mac(OS 9以前) |
テキストファイルで使用している改行文字に、テキストエディタが対応していないと、改行が無視されて1行で表示されてしまいます。
例)Windowsのメモ帳で、改行がLinux形式のLFで書かれたファイルを開く。
#対応方法
対応方法を羅列してみます。
##さくらエディタを使う
全ての改行文字に対応したテキストエディタを使えばいい、ということでサクラエディタを使います。zip版なら本番サーバで使用しても大丈夫な場合が多いかと思います。
サクラエディタでは改行文字の違いは矢印の違いにより表されます。
Enterキーで改行を新たに入力すると、そのファイルの改行文字が入力される。
(改行文字LFに一行追加)
##メモ帳の対応を待つ
本番サーバだとテキストエディタを新たにインストールできないこともあるので、ビルトインのメモ帳が全ての改行文字に対応すると嬉しいですね。Windows 10 Insider Previewで既に公開されており、今後リリース予定とのことです。
https://blogs.msdn.microsoft.com/commandline/2018/05/08/extended-eol-in-notepad/
##Javaで編集するとき
Javaでテキストファイルを編集するときは、System.lineSeparator()を使い、自動的にOSに依存した改行コードが出力されます。
そのため改行文字がLFのファイルをWindows環境で編集すると、LFとCR+LFが混在してしまうので別途対応が必要です。