由来がはっきりしないWindowsの“謎”仕様──Windowsの雑学(諸説あります)その知識、ホントに正しい? Windowsにまつわる都市伝説(133)(2/3 ページ)

» 2019年04月09日 05時00分 公開
[山市良テクニカルライター]

[謎その2]Windowsのテキスト改行コードが「CR+LF」なのは、他のOSに忖度したから?

 Windowsで作成するテキストファイルの標準の改行コードは「キャリッジリターン(CR)+ラインフィード(LF)」(\r\n、0x0D0A)です。一方、Windows以外のOSでは「LF」(\n、0x0A)が主流です。そのため、Windows以外で作成されたテキストファイルをシンプルな「メモ帳」で開くと、改行されないため可読性が損なわれます(画面4)。

画面4 画面4 Windowsのアプリケーションには、LinuxなどWindows以外のOSで作成されたテキストファイルの改行を正しく扱えないものもある。例えば、「メモ帳」がそう(Windows 10 バージョン1809のメモ帳からは、ようやくLFのみの改行も認識するようになった)

 これは、異種混在環境でファイルをやりとりする場合や、オープンソースのコードを扱う際に厄介です。そのため、Windowsで作業する開発者の多くは、標準の「メモ帳」(notepad.exe)は使わずに、複数の改行コードに対応した高機能なテキストエディタや開発ツールを使用していることでしょう。ちなみに、Windows 10 バージョン1809では「メモ帳」が改善され、CR+LF以外の改行コード(CRのみ、LFのみ)にも対応しました(画面5)。

画面5 画面5 Windows 10 バージョン1809のメモ帳は、CRのみ、LFのみの改行コードをサポート

 そんなことも知らずに、やれ“オープンソースを扱うならLinuxでしょ!”だとか、“macOS(OS X)はUNIXベースだから開発に使えるよね!”だとか、“メモ帳がついにLF対応って、何を今さら?”だとか……。自分が使い慣れたものを引き続きご利用ください。

 最初に最も有力な説から。DOS(PC-DOS/MS-DOS)は、8bit PC用OSの代表格であったCP/M(Control Program for Microcomputer)をモデルに開発されたと言われています。「8+3文字」というファイル名の命名規則、「.COM」という実行ファイルの拡張子、ドライブレター、デバイス名、コマンドプロンプト(>)と組み込みコマンド(DIRなど)は、全てCP/Mに由来するものです。そして、CP/Mが採用していた改行コードがCR+LFであり、それがDOS、そしてWindowsへと引き継がれてきたということです。この説は説得力がありますし、きっと正解なのでしょう。

 では、こんな新説はいかがでしょう。さまざまなOSの混在環境において、後発のDOSやWindowsが異種OSに忖度(そんたく)した説です。メインフレームからのダウンサイジングが進み、企業にコンピュータ(ミニコンやオフコン、PCサーバなど)やパーソナルコンピュータが導入され始めたころ、DOS/Windowsは決して主流のサーバOSやクライアントOSではありませんでした。周りを見渡せばUNIX(SVR4やBSD)、Apple Mac OS(Mac OS 9以前のクラシックMacintosh、日本では「漢字Talk」と呼ばれていた)、IBM OS/2などさまざまなOSがありました。

 UNIXの改行コードはLF、当時のMac OSの改行コードはCR、Windowsと同期と言えなくもないOS/2の改行コードはCR+LFです。DOSやWindowsで作成したテキストファイルの改行コードはCR+LFなので、LFが改行コードのUNIX環境でも、CRが改行コードのMac OS環境でも、取りあえず改行されます(画面6)。

画面6 画面6 Windowsで作成されたテキストファイルの改行コードはCR+LFであるため、UNIX/Linuxで開いても、クラシックMacintosh(Mac OS 9以前)で開いても、(余計な文字が表示されることもあるが)取りあえず改行される

 DOS/Windowsが仲介役に徹することで、異種混在環境の課題の一つを解消できたわけです(アプリケーションによっては余計な文字(^M)が表示されることがありましたが)。この新説は結果からのこじつけなので、ちょっと無理がありますね。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。