任何人都可以建議什麼是識別數據庫列數據中換行符的理想方法嗎?如何識別數據庫列的數據中的換行符?
使用\r\n
或chr(10)
?實際上有什麼不同?
C#代碼是否需要執行任何特殊處理來分割行或者它會被自動識別?
任何人都可以建議什麼是識別數據庫列數據中換行符的理想方法嗎?如何識別數據庫列的數據中的換行符?
使用\r\n
或chr(10)
?實際上有什麼不同?
C#代碼是否需要執行任何特殊處理來分割行或者它會被自動識別?
\r
是char(13)
被稱爲「回車」字符。\n
是char(10)
被稱爲「換行」字符。\r\n
是char(13) + char(10)
,即案例1 & 2級聯。不同的操作系統讀或寫在文本數據產生新的線時使用不同的組合,最常見的有:
在C#中,你可以通過拆分這樣的線條處理所有三種情況:
string[] lines = dbText.Split(new string[] { "\r\n", "\n", "\r" },
StringSplitOptions.None);
其他字符,組合使用其他操作系統和這個問題甚至有它自己的Wikipedia page與方式更詳細比你可能需要的還要多!
Mac僅使用「\ r」,大型機(OS/390-EBCDIC)使用「\ u0085」,而其他一些系統使用FormFeed =「\ u000C」。請將這些添加到您的列表和分隔符列表字符串[],我會+1 :)。 – 2013-05-05 13:39:07
@srutzky感謝您的反饋。看來不同版本的Mac使用不同的行結尾。無論如何,我添加了最終評論和維基百科鏈接。 – davmos 2013-05-05 14:05:32
好的,很好的鏈接。謝謝。考慮到它之後,大型機一個並不重要,因爲整個字符集會有所不同。我仍然認爲「\ r」本身應該在分隔符數組中,但不管+1,因爲這個答案是正確的。 – 2013-05-05 22:41:17
沒有區別。 '\ n'是'chr(10)' – zerkms 2013-05-05 07:59:42
@zerkms的文本表示。我認爲\ n是13 + 10。 REPLACE(@string,CHAR(13)+ CHAR(10),'') – 2013-05-05 08:01:59
@Royi Namir:'\ n'是ASCII 10,'\ r'是ASCII 13 – zerkms 2013-05-05 08:02:25