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


94

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

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

我知道我可以在\r\n阅读内容时通过将其替换为CRLF(或其他任何方式)来解决此问题,但我想知道为什么这些以文本为目标的resx文件忽略控制字符-CRLF非常重要-是否有人知道是否有某种设置或可以使之正常运行的功能。

Answers:


161

我使用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>

3
我找到了这个答案,正在寻找一种插入\t标签的方法。我实际上必须进入xml文件中制表符的Visual Studio设置,然后关闭“制表符作为空格”选项(该选项将制表符替换为多个空格),这样才能在字符串中使用文字制表符。
乔恩·奥

太棒了...不知道有可能!:)
Leniel Maccaferri'8年

迟到总比没有好...我以为\ n是正确的方法。只需进行50次更改!
Andez 2014年

拯救了我的一天。谢谢!!
xyzWty

35

使用Shift+ Enter插入新行。


4
谁会猜到的 尝试按Ctrl + Enter,按Alt + Enter。一致性MS!
Illuminati

18

使用resx设计器界面时

  • 如果您实际上是在resx文件中键入文本,则可以使用

    Shift+Enter

    如其他答案中所述。

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

以XML格式打开resx文件时

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

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


17

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


10
如果您的资源字符串注定要用作HTML,那么它将起作用。但是,如果该字符串以非HTML方式使用(例如,作为桌面应用程序中的工具提示或错误消息对话框的字符串),则只需在字符串中输入<br>即可。
彼得·迈耶

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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.