如果我使用以下代码将字符串转换为字节:
如果我使用以下代码将字符串转换为字节:
byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString);
我收到的字节使用Windows换行符。如何将其转换为Unix换行符?
行尾与编码无关。如果您想将Windows的行尾转换为Unix的行尾,请在字符串本身中进行:
myString = myString.Replace("\r\n", "\n");
个人而言,我尽可能避免使用ASCII码。顺便问一下,您确定它永远不需要任何重音字符吗?如果可以选择,我通常使用UTF-8:
myString = myString.Replace("\r\n", "\n");
byte[] bytes = Encoding.UTF8.GetBytes(myString);
如果您要向某个流写入内容,另一种选择是使用 StreamWriter
或 File.CreateText
等工具。在此,您只需一次指定编码方式,而无需直接处理原始字节。
string myString = @"line 1
line 2";
byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString.Replace(Environment.NewLine, "\n"));