我在App_GlobalResources.resx
文件中保留了几个文本。
文本必须是多行的,我需要让它们包含换行符。但是,当我阅读内容时,所有换行都消失了(\r\n
被打印,而不是CRLF 10 13
控制字符。
我知道我可以通过在阅读内容时将\r\n
(或其他任何内容)重新替换回CRLF来解决这个问题,但我想知道为什么这些明显以文本为目标的resx文件会忽略控制权字符 - 和CRLF是很重要的 - 如果有人知道是否有设置或某些东西可以使它自然地工作。
答案 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中粘贴文本 - Visual Studio将以与原来相同的格式粘贴文本(包括换行符/多行)。
(使用查找和替换找到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
进行编码选择(自动检测)<value>
标记内的文本。对于换行符,只需按Enter
。注意:换行后请删除前导空格。否则,它们也会被插入。已通过Visual Studio 2017测试。
示例:
<data name="MY_TEXT" xml:space="preserve">
<value>Line 1
Line 2
Line 3</value>
</data>