为什么 ini 文件中的 \n 不起作用?

发布于 2024-10-06 03:33:13 字数 419 浏览 3 评论 0原文

我只是对标题感到好奇。

String a = "abc\ndef";
Console.Writeline(a);

输出是

abc
def

然后我将该值存储到一个 ini 文件中并从那里检索它。

ini.iniwritevalue("a", "a", a);
string b = ini.inireadvalue("a", "a");

然后我在控制台上显示了它。结果如下:

abc\ndef

为什么从ini文件中检索\n后不起作用?

PS我有一个ini.dll文件。我们公司正在使用该dll来读写ini文件。

I am just curious about the title.

String a = "abc\ndef";
Console.Writeline(a);

The output is

abc
def

Then I stored that value into an ini file and retrieved it from there.

ini.iniwritevalue("a", "a", a);
string b = ini.inireadvalue("a", "a");

Then I showed it on the console. The result is the following:

abc\ndef

Why is \n not working after I retrieved it from the ini file?

P.S. I have a ini.dll file. Our company is using that dll to read and write ini files.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浮华 2024-10-13 03:33:13

源代码中 \n 转义码的解释是由编译器在解析源文件时完成的。

如果您只是在运行时将文件读为“数据”,则不一定会发生这种解释。

您可能需要找到或编写一个函数,该函数接受包含转义序列的字符串并将它们转换为二进制值(\n 通常变为 0x0a)

The interpretation of the \n escape code in your source code is done by the compiler when parsing the source file.

If you just read in a file as "data" at runtime, no such interpretation is necessarily going to occur.

You may need to find or write a function which takes a string containing escape sequences and converts them to binary values (\n usually becomes 0x0a)

古镇旧梦 2024-10-13 03:33:13

这是因为 C# 中的 \n 不仅仅是一个 \n,而是一个具有特殊含义的转义序列。 \n 被视为单个字符并且是行结束符。当您仅从文件中读取 \n 时,您将无法获得它。

可能您从那里读取了 \\n\\ 也是一个转义序列,表示 \ 字符。您所要做的就是将 \\n 替换为 \n ,就可以了。

string s = ... //get the value
s = s.Replace("\\n", "\n");

This is because \n in C# is not just a \ and an n, but an escape sequence with a special meaning. \n is considered a single character and is a line ending. You will not get it when you simply read a \ and an n from a file.

Possibly, you read \\n from there. \\ is also an escape sequence which means the \ character. All you have to do is replace \\n with \n, and it'll be okay.

string s = ... //get the value
s = s.Replace("\\n", "\n");
っ左 2024-10-13 03:33:13

写入值时需要转义斜杠,如下所示:

abc\\ndef

You need to escape the slash when you write the value, like this:

abc\\ndef
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文