gpt4 book ai didi

C# '\n' 保存在与预期不同的字节中

转载 作者:太空狗 更新时间:2023-10-29 22:25:35 25 4
gpt4 key购买 nike

如果我将这个字符串保存到一个文本文件中;

Hello this \n is a test message

\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 将编码字节写入文件。

我试过使用\r\n 但得到了相同的结果。

有什么建议吗?

谢谢!

编辑

正在从 tsv 文件中读取字符串并将其放入字符串数组中。正在读取的字符串中有“\n”。

要读取字符串,我使用 StreamReader 阅读器 并在\t 处拆分

最佳答案

在执行时,您的字符串包含一个反斜杠字符,后跟一个 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");

关于C# '\n' 保存在与预期不同的字节中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com