Ale*_*lex 89 resx newline line-breaks resource-files
我在App_GlobalResources.resx文件中保留了几个文本.
文本必须是多行的,我需要让它们包含换行符.但是,当我读取内容时,所有换行都消失了(\r\n打印出来,而不是作为CRLF 10 13控制字符).
我知道\r\n当我阅读内容时,我可以通过重新替换(或其他任何事情)回到CRLF来解决这个问题,但我想知道为什么这些明显以文本为目标的resx文件会忽略控制字符 - 而且CRLF很重要 - 如果有人知道是否有设置或某些东西可以让它自然地工作.
sha*_*esh 151
我使用VB.NET Express Edition来测试这个.
在资源编辑器中(您可以在其中指定资源的名称和字符串内容),将字符串内容用Shift+ 分隔Enter.
让我们说你想输入
hello
world
Run Code Online (Sandbox Code Playgroud)
输入"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>
Run Code Online (Sandbox Code Playgroud)
Dan*_*eld 18
如果您实际上是在resx文件中键入文本,那么您将使用
Shift+Enter
如其他答案所述.
如果要在resx中粘贴文本 - Visual Studio将以与原来相同的格式粘贴文本(包括换行符/多行).
(使用查找和替换找到resx文件..当您从'查找结果'面板中单击文件时,VS将以XML格式打开resx文件)
您可以在此处添加文本(在值标签中),并保留格式.
Len*_*rri 12
那么,在我的情况下有用的是使用这样的<br>标签:
A text with a line break <br> and this goes in the second line.
Run Code Online (Sandbox Code Playgroud)
这里有一篇帖子包含更多信息:在resx资源文件中添加换行符
如果您正在使用带有ASP.NET MVC的Razor视图引擎,则需要使用:
@Html.Raw(ResourceFile.ResourceString)
Run Code Online (Sandbox Code Playgroud)
以便它打印<br>为HTML.