102

我在一个App_GlobalResources.resx文件中保存了几个文本。

文本必须是多行的,我需要让它们包含换行符。但是,当我阅读内容时,所有换行符都消失了(\r\n被打印出来,而不是作为CRLF 10 13控制字符)。

我知道我可以通过\r\n在阅读内容时将(或其他任何事情)重新替换回 CRLF 来解决这个问题,但我想知道为什么这些明确以文本为目标的 resx 文件会忽略控制字符——而 CRLF 有点重要- 如果有人知道是否有设置或其他东西可以使其自然工作。

4

5 回答 5

169

我使用 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>
于 2009-05-31T06:49:26.083 回答
37

使用Shift+Enter插入新行。

于 2009-08-18T10:08:27.380 回答
20

使用 resx 设计器界面时

  • 如果您实际上是在 resx 文件中输入文本,那么您将使用

    Shift+Enter

    如其他答案所述。

  • 如果您在 resx 中粘贴文本 - Visual Studio 将以与现有格式相同的格式粘贴文本(包括换行符/多行)。

打开 XML 格式的 resx 文件时

(使用查找和替换找到 resx 文件。当您从“查找结果”面板单击文件时,VS 将以 XML 格式打开 resx 文件)

在这里,您可以根据需要添加文本(在值标签中),格式将被保留。

于 2012-08-28T11:24:28.563 回答
18

好吧,在我的情况下起作用的是使用这样的<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。

于 2012-08-01T18:45:53.107 回答
2

可以使用文本编辑器*.resx编辑文件以添加换行符。

您甚至可以在 Visual Studio 中执行此操作:

  • 右键单击资源文件
  • 点击进入Open with ...
  • 选择XML (Text) Editor with Encoding
  • 点击OK
  • 再次单击OK进行编码选择(自动检测)
  • 搜索文本的名称(键)(例如“MY_TEXT”)
  • <value>编辑标签内的文本。对于换行符,只需按下Enter. 注意:删除换行后的前导空格。否则它们也会被插入。

使用 Visual Studio 2017 进行测试。

例子:

  <data name="MY_TEXT" xml:space="preserve">
    <value>Line 1
Line 2
Line 3</value>
  </data>
于 2018-12-17T18:23:02.137 回答