我将几段文字保存在一个 App_GlobalResources.resx 文件。

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

我知道我可以通过重新替换来解决这个问题 \r\n (或与此相关的任何其他内容)当我阅读内容时回到 CRLF,但我想知道为什么这些明确以文本为目标的 resx 文件会忽略控制字符 - 而且 CRLF 很重要 - 如果有人知道是否有设置或其他内容将使这自然地发挥作用。

有帮助吗?

解决方案

我用VB.NET快捷版来测试此。

在资源编辑器(在这里您可以指定资源和字符串的内容的名称)把分隔字符串的内容<大骨节病>移 + <大骨节病>输入

比方说,你要键入

hello  
world

类型 “你好”,接着 + 输入和 “世界”。

如果你看一下Resources.Resx文件(它是一个XML文件),则可以看到它创建具有属性xml:space="preserve"的节点。

<强>第二选项

此外,还可以手动编辑Resources.resx和修改的内容作为根据CDATA部。

假设你有一个名为“榜样”的字符串。在Resources.resx搜索它和改变内容为具有在其内部CDATA部作为对具有简单的值。

e.g。

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

其他提示

使用 + 输入插入一个新行。

使用 resx 设计器界面时

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

    转移+进入

    正如其他答案中所述。

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

打开 XML 格式的 resx 文件时

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

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

那么,在我的处境工作是使用<br>标签是这样的:

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

有与这里的详细信息后:的把换行符在RESX资源文件

如果你碰巧使用Razor视图引擎ASP.NET MVC你需要使用:

@Html.Raw(ResourceFile.ResourceString)

,使得其打印<br>为HTML。

可以编辑 *.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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top