2013-05-05 50 views
1

任何人都可以建議什麼是識別數據庫列數據中換行符的理想方法嗎?如何識別數據庫列的數據中的換行符?

使用\r\nchr(10)?實際上有什麼不同?

C#代碼是否需要執行任何特殊處理來分割行或者它會被自動識別?

+0

沒有區別。 '\ n'是'chr(10)' – zerkms 2013-05-05 07:59:42

+0

@zerkms的文本表示。我認爲\ n是13 + 10。 REPLACE(@string,CHAR(13)+ CHAR(10),'') – 2013-05-05 08:01:59

+0

@Royi Namir:'\ n'是ASCII 10,'\ r'是ASCII 13 – zerkms 2013-05-05 08:02:25

回答

3
  1. \rchar(13)被稱爲「回車」字符。
  2. \nchar(10)被稱爲「換行」字符。
  3. \r\nchar(13) + char(10),即案例1 & 2級聯。

不同的操作系統讀或寫在文本數據產生新的線時使用不同的組合,最常見的有:

  • Windows使用組合的情況下,如圖3所示,稱爲「回車換行」 。
  • Unix和類Unix系統使用案例2,只是「換行」。

在C#中,你可以通過拆分這樣的線條處理所有三種情況:

string[] lines = dbText.Split(new string[] { "\r\n", "\n", "\r" }, 
           StringSplitOptions.None); 

其他字符,組合使用其他操作系統和這個問題甚至有它自己的Wikipedia page與方式更詳細比你可能需要的還要多!

+1

Mac僅使用「\ r」,大型機(OS/390-EBCDIC)使用「\ u0085」,而其他一些系統使用FormFeed =「\ u000C」。請將這些添加到您的列表和分隔符列表字符串[],我會+1 :)。 – 2013-05-05 13:39:07

+0

@srutzky感謝您的反饋。看來不同版本的Mac使用不同的行結尾。無論如何,我添加了最終評論和維基百科鏈接。 – davmos 2013-05-05 14:05:32

+1

好的,很好的鏈接。謝謝。考慮到它之後,大型機一個並不重要,因爲整個字符集會有所不同。我仍然認爲「\ r」本身應該在分隔符數組中,但不管+1,因爲這個答案是正確的。 – 2013-05-05 22:41:17

相關問題