回车/换行.Net资源文件(App_GlobalResources)

时间:2009-05-31 02:25:29

标签: newline line-breaks resx resource-files

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

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

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

5 个答案:

答案 0 :(得分:150)

我使用VB.NET Express Edition来测试它。

在资源编辑器中(您可以在其中指定资源名称和字符串内容),将字符串内容分隔为 Shift + Enter

假设你想输入

hello  
world

输入“hello”,然后输入 Shift + 输入和“world”。

如果查看Resources.Resx文件(它是一个xml文件),您可以看到它创建了一个属性为xml:space="preserve"的节点。

第二个选项

此外,您可以手动编辑Resources.resx并修改CDATA部分下的内容。

假设您有名为“example”的字符串。在Resources.resx中搜索它并更改内容以在其中包含CDATA部分,而不是具有简单值。

e.g。

<data name="example">
<![CDATA[
hello
world
1
2   3
4
]]>  </data>

答案 1 :(得分:31)

使用 Shift + 输入以插入新行。

答案 2 :(得分:16)

使用resx设计器界面时

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

    + 输入

    如其他答案中所述。

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

以XML格式打开resx文件时

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

您可以在此处添加文本(在值标签中),并保留格式。

答案 3 :(得分:11)

嗯,在我的情况下有用的是<br>这样的标签:

A text with a line break <br> and this goes in the second line.

这里有一篇帖子包含更多信息:Putting a line break in an resx resource file

如果您正在使用带有ASP.NET MVC的Razor视图引擎,则需要使用:

@Html.Raw(ResourceFile.ResourceString)

以便将<br>打印为HTML。

答案 4 :(得分:0)

可以使用文本编辑器编辑*.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>