我在一个App_GlobalResources.resx
文件中保存了几个文本。
文本必须是多行的,我需要让它们包含换行符。但是,当我阅读内容时,所有换行符都消失了(\r\n
被打印出来,而不是作为CRLF 10 13
控制字符)。
我知道我可以通过\r\n
在阅读内容时将(或其他任何事情)重新替换回 CRLF 来解决这个问题,但我想知道为什么这些明确以文本为目标的 resx 文件会忽略控制字符——而 CRLF 有点重要- 如果有人知道是否有设置或其他东西可以使其自然工作。
我在一个App_GlobalResources.resx
文件中保存了几个文本。
文本必须是多行的,我需要让它们包含换行符。但是,当我阅读内容时,所有换行符都消失了(\r\n
被打印出来,而不是作为CRLF 10 13
控制字符)。
我知道我可以通过\r\n
在阅读内容时将(或其他任何事情)重新替换回 CRLF 来解决这个问题,但我想知道为什么这些明确以文本为目标的 resx 文件会忽略控制字符——而 CRLF 有点重要- 如果有人知道是否有设置或其他东西可以使其自然工作。
我使用 VB.NET Express Edition 对此进行了测试。
在资源编辑器中(您可以在其中指定资源的名称和字符串内容)将字符串内容以Shift+分隔Enter。
假设您要输入
hello
world
键入“hello”,然后是Shift+Enter和“world”。
如果您查看 Resources.Resx 文件(这是一个 xml 文件),您可以看到它创建了一个具有属性的节点xml:space="preserve"
。
第二个选项
此外,您可以手动编辑 Resources.resx 并将内容修改为 CDATA 部分下。
假设您有名为“example”的字符串。在 Resources.resx 中搜索它并将内容更改为在其中包含 CDATA 部分,而不是具有简单值。
例如
<data name="example">
<![CDATA[
hello
world
1
2 3
4
]]> </data>
使用Shift+Enter插入新行。
如果您实际上是在 resx 文件中输入文本,那么您将使用
Shift+Enter
如其他答案所述。
如果您在 resx 中粘贴文本 - Visual Studio 将以与现有格式相同的格式粘贴文本(包括换行符/多行)。
(使用查找和替换找到 resx 文件。当您从“查找结果”面板单击文件时,VS 将以 XML 格式打开 resx 文件)
在这里,您可以根据需要添加文本(在值标签中),格式将被保留。
好吧,在我的情况下起作用的是使用这样的<br>
标签:
A text with a line break <br> and this goes in the second line.
这里有一个包含更多信息的帖子:在 resx 资源文件中放置换行符
如果您碰巧使用带有 ASP.NET MVC 的 Razor 视图引擎,您需要使用:
@Html.Raw(ResourceFile.ResourceString)
以便将其打印<br>
为 HTML。
可以使用文本编辑器*.resx
编辑文件以添加换行符。
您甚至可以在 Visual Studio 中执行此操作:
Open with ...
XML (Text) Editor with Encoding
OK
OK
进行编码选择(自动检测)<value>
编辑标签内的文本。对于换行符,只需按下Enter
. 注意:删除换行后的前导空格。否则它们也会被插入。使用 Visual Studio 2017 进行测试。
例子:
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>