読みやすいテキストではなく、「おridge」の問題は、Windows環境の他のオペレーティングシステムで作成されたテキストドキュメントを開こうとした人々が何十年も直面してきました。 今ではすべてが一晩で変化しています。 そして、この変化は、その実際的な結果とイデオロギー的な結果において壮大であるのと同じくらい小さい。 マイクロソフトは再び、クロスインテグレーションとオープンスタンダードのサポートを試みています。
何年もの間、Windows Notepadは通常、Windowsの行末(EOL)形式の新しい行の先頭を含むテキストドキュメントのみを表示できました。「キャリッジリターン」(CR)と「行ごとのフィード」(LF)です。 実際、これにより、Unicode、Linux、およびmacOSで作成されたテキストファイルの内容をNotepadが正しく表示できず、LF文字のみが行末記号として使用されていました。
たとえば、Unix LF EOL文字のみを含むLinux .bashrcテキストファイルの内容を表示しようとするメモ帳のスクリーンショットは次のとおりです。
これは最近更新されたメモ帳のスクリーンショットで、同じUNIX / Linux .bashrcファイルの内容を表示しますが、正しいハイフネーションを使用しています。
ステータスバーは、現在開いているファイルの検出されたEOL形式を示していることに注意してください。
また、新機能を柔軟に管理するために、レジストリキー[HKEY_CURRENT_USER \ Software \ Microsoft \ Notepad]に2つの追加キーを入力します。
情熱という点では、電子文書で新しい行を開始する方法についての議論は、プログラムのソースコード内のスペースやタブについての議論に匹敵します。 この「ラインごとの」対立には多くの理由があり 、古代の基準と伝統の分野にあり、印刷機とテレタイプのデザイン機能にルーツを持っています。 同様に重要な役割は、一部のプログラマーが文字通りコマンドを実行(解釈)し、キャラクターを制御する一方で、常識に従うことを望んでいることによって果たされました。
ウィキペディアから問題について何を学ぶことができますか
歴史的に、機械式タイプライターには、キャリッジをページの左端に戻し、シャフトをスクロールして紙を一行上に移動させるレバーがありました。 テレタイプおよびその後の英数字印刷デバイス(ADCS)では、キャリッジの代わりにヘッドがあり、レーザープリンターでは材料ではなくなったが、キャリッジリターンという用語では、キャリッジキャリッジを変更しないようにキャリッジと呼び続けた。 テレタイプでは、キャリッジリターンとラインフィードが共有されていたため、CR + LFとしてラインフィードを表すという伝統がテキストファイルに移りました。
ASCIIまたは互換文字セットシステムは、LF(改行、0x0A)、CR(キャリッジリターン、0x0D)のいずれか、またはCR + LFシーケンスを使用します。 これらの名前はプリンターコマンドに基づいています。ラインフィードとは、印刷時に用紙上の1行を折り返すことを意味し、キャリッジリターンとは、印刷デバイスのキャリッジを現在の行の先頭に戻すことを意味します。
- CR(ASCII 0x0D)は、コモドール8ビットマシン、TRS-80、Apple II、バージョン9およびOS-9までのMac OSシステムで使用されました。
- LF(ASCII 0x0A)は、Multics、UNIX、UNIXライクなオペレーティングシステム(GNU / Linux、AIX、Xenix、Mac OS X、FreeBSD)、BeOS、Amiga UNIX、RISC OSなどで使用されます。
- CR + LF(ASCII 0x0D 0x0A)は、DEC RT-11および他のほとんどの初期の非UNIXシステムと非IBMシステム、およびCP / M、MP / M、MS-DOS、OS / 2、Microsoft Windowsで使用されます、Symbian OS、インターネットプロトコル。
標準では、Unicode互換アプリケーションはすべて、次の各文字の改行として解釈される必要があります。
- LF(U + 000A):英語 改行-改行<S>;
- CR(U + 000D):Eng。 復帰-復帰<VK>;
- NEL(U + 0085):英語 次の行-次の行に移動します。
- LS(U + 2028):英語 行区切り記号-行区切り記号。
- PS(U + 2029):英語 段落区切り-段落区切り。
さらに、シーケンスCR + LF(U + 000D U + 000A)は、2つではなく1つの改行として解釈する必要があります。
しかし、ご存知のように、標準は標準であり、すべての実装はしばしば異なっています。 また、ユニコード時代以前に作成された継承ドキュメントを正しく表示する必要があるため、燃料が火に追加されます。 さまざまなオペレーティングシステムで長い間単一のラインフィードの一般的に受け入れられた表現が存在しなかったため、それらの間でのテキストデータの交換が複雑になりました。
Unicodeは、CR、LF、CR + LFを等化することでこの違いを調整しようとしますが、CRが先行しないLF + CRシーケンスを解釈するときに、継承するASCIIと競合します:ASCIIによると、これは1つの改行であり、Unicodeによると2です。