如何使用unix行结尾将字符串转换为字节?

时间:2011-02-14 10:50:01

标签: c# .net string text ascii

如果我使用:

将字符串转换为字节
byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString);

然后我得到的字节使用Windows行结尾。如何使用Unix行结尾转换它?

2 个答案:

答案 0 :(得分:9)

行结尾与编码无关。如果要将Windows行结尾转换为Unix行结尾,请在字符串本身中执行此操作:

myString = myString.Replace("\r\n", "\n");

我个人尽量避免使用ASCII,顺便说一下 - 你绝对肯定它永远不会需要任何重音字符吗?如果我做出选择,我通常使用UTF-8:

myString = myString.Replace("\r\n", "\n");
byte[] bytes = Encoding.UTF8.GetBytes(myString);

如果您正在某处写入流,则可以使用StreamWriterFile.CreateText等。然后您指定编码一次但不需要自己处理原始字节

答案 1 :(得分:2)

string myString = @"line 1
line 2";
byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString.Replace(Environment.NewLine, "\n"));