web-dev-qa-db-ja.com

C#では、\ nと\ r \ nの違いは何ですか?

件名ごとに...

31
Aperture

\nはUnix、\rはMac、\r\nはWindowsです。

クロスプラットフォームでコードを実行する場合は特に問題が生じることがあります。 Environment.NewLineを使用してこれをバイパスできます。

詳細については、 \ r、\ n、および\ r\nの違いは何ですか?! を参照してください。幸せな読書

40
Peter van Kekem

違い

改行を示すことができる文字がいくつかあります。通常は次の2つです。

* '\n' or '0x0A' (10 in decimal) -> This character is called "Line Feed" (LF).
* '\r' or '0x0D' (13 in decimal) -> This one is called "Carriage return" (CR).

異なるオペレーティングシステムは、異なる方法で改行を処理します。最も一般的なものの短いリストは次のとおりです。

* DOS and Windows

改行は、2つの文字の組み合わせ、つまり '\ r\n'(または13の後に10)であると想定しています。

* Unix (and hence Linux as well)

Unixは、単一の「\ n」を使用して改行を示します。

* Mac

Macは単一の'\r'を使用します。

ここ から取得

33
Dave

「\ n」は単なる改行(Unicode U + 000A)です。これは通常、Unix行区切り文字です。

「\ r\n」は、キャリッジリターン(Unicode U + 000D)とそれに続く改行(Unicode U + 000A)です。これは通常、Windowsの行区切り文字です。

10
Jon Skeet

基本的にはWindows標準になります:\ r\nおよびUnixベースのシステム:\ n

http://en.wikipedia.org/wiki/Newline

2
James Hulse

\ n = LF(改行)// Unixで改行文字として使用

\ r = CR(キャリッジリターン)// Macで改行文字として使用

\ r\n = CR + LF // Windowsで改行文字として使用

(char)13 =\r = CR

Environment.NewLine=オペレーティングシステムに基づいた上記のコードのいずれか

// .NETは、オペレーティングシステムに基づいて多くのデータを提供するEnvironmentクラスを提供します。したがって、アプリケーションがWindows上で構築され、CR + LF( "\ n\r"の代わりにEnvironment.NewLine)を文字列の改行文字として使用し、MicrosoftがUnixで.NETアプリケーションを実行するためにVMを作成すると、問題が発生します。したがって、改行文字が必要な場合は、常にEnvironment.NewLineを使用する必要があります。ここで、オペレーティングシステムを気にする必要はありません。

1
Ankur Bhutani

オペレーティングシステムが回線の終端を認識する方法についてです。

  • Windowsユーザー\ r\n
  • Macユーザー\ r
  • Linuxは\ nを使用します

士気:Windows用に開発している場合は、\ r\nに固執します。または、C#文字列関数を使用して、既に行末(WriteLineなど)を考慮している文字列を処理することもできます。

0
Palantir

\ nはUnix(-like)システムで使用される改行です。\ r\nはWindowsで使用されます。これはC#とは関係ありません。

0
Adrian Grigore

それらはただ\r\n and \nはバリアントです。

\r\nはWindowsで使用されます

\nはMacおよびLinuxで使用されます

0
Thalaivar