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

izb*_*izb 3 .net c# string text ascii

如果我使用以下方法将字符串转换为字节

byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString);
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 9

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

myString = myString.Replace("\r\n", "\n");
Run Code Online (Sandbox Code Playgroud)

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

myString = myString.Replace("\r\n", "\n");
byte[] bytes = Encoding.UTF8.GetBytes(myString);
Run Code Online (Sandbox Code Playgroud)

如果您正在某处写入流,则可以使用任何替代方法StreamWriter,或者File.CreateText等等.然后,您只需指定一次编码,但不需要自己处理原始字节.

  • @Richard:为什么?问题是如何将*Windows*行终止符转换为Unix符号...而不是"我的系统的当前行终止符"转换为Unix.我的答案是与问题完全匹配的代码.如果这实际上是在Mono上运行,并且正在加载在Windows中生成的文件,该怎么办? (3认同)