如果我将此字符串保存到文本文件中;
你好,这是一个测试信息
\ n字符保存为HEX [5C 6E]我希望将其保存为[0A]。
我认为这是一个编码问题?
我正在使用;
// 1252 is a variable in the application
Encoding codePage = Encoding.GetEncoding("1252");
Byte[] bytes = new UTF8Encoding(true).GetBytes("Hello this \\n is a test message");
Byte[] encodedBytes = Encoding.Convert(Encoding.UTF8, codePage , bytes);
所有这些都在FileStream范围内,并使用fs.Write将encodedBytes写入文件。
我曾尝试使用\ r \ n但结果相同。
有什么建议吗?
谢谢!
修改
正在从tsv文件中读取字符串并将其放入字符串数组中。正在读取的字符串包含" \ n"在它。
要读取字符串,我使用StreamReader reader
并在\ t
答案 0 :(得分:10)
在执行时,您的字符串包含一个反斜杠字符,后跟一个n
。它们的编码完全符合。如果你真的想要一个换行符,你不应该在代码中转义反斜杠:
Byte[] bytes = new UTF8Encoding(true).GetBytes("Hello this \n is a test message");
该字符串文字使用\n
来表示换行符U + 000A。在执行时,字符串不会包含反斜杠或n
- 仅包含换行符。
但是,你的代码已经很奇怪,如果你想获得字符串的编码形式,没有理由通过UTF-8:
byte encodedBytes = codePage.GetBytes("Hello this \n is a test message");