在.Net资源文件(App_GlobalResources)中的回车/换行
我在App_GlobalResources.resx
文件中保留了几个文本。
文本必须是多行的,我需要让它们包含换行符。 但是,当我读取内容时,所有换行都不见了(打印\r\n
,而不是CRLF 10 13
控制字符)。
我知道我可以通过在读取内容时将\r\n
(或其他任何事情)重新replace为CRLF来解决这个问题,但是我想知道为什么这些明确的以文本为目标的resx文件忽略了控制字符 – 而CRLF是非常重要的 – 如果有人知道是否有一个设置或什么,可以使这个工作自然。
我用VB.NET Express Edition来testing这个。
在资源编辑器(您可以指定资源和string内容的名称)中,将string内容用Shift + Enter分隔。
让我们说你想input
hello world
input “hello”,然后按Shift + Enter和“world”。
如果查看Resources.Resx文件(这是一个xml文件),可以看到它创build了一个具有属性xml:space="preserve"
的节点。
第二个选项
另外,您可以手动编辑Resources.resx并将其内容修改为CDATA部分。
假设你有一个名为“example”的string。 在Resources.resx中search它,并将其内容更改为具有CDATA部分,而不是具有简单的值。
例如
<data name="example"> <![CDATA[ hello world 1 2 3 4 ]]> </data>
使用Shift + Enter插入一个新行。
当使用resxdevise器界面
-
如果你真的把文本input到resx文件,那么你会使用
Shift + Enter
正如其他答案所指出的那样
-
如果您在resx中粘贴文本,则Visual Studio将以与原来相同的格式(包括换行符/多行)粘贴文本。
以XML格式打开resx文件时
(使用查找和replacefindresx文件..当你从“查找结果”面板中单击文件时,VS将打开XML中的resx文件)
在这里你可以添加文本,只要你喜欢(在价值标签)和格式将被保留。
那么,在我的情况是什么工作是使用像这样的标签:
A text with a line break <br> and this goes in the second line.
在这里有一个post更多的信息: 在resx资源文件中放置一个换行符
如果你碰巧在ASP.NET MVC中使用Razor视图引擎,你需要使用:
@Html.Raw(ResourceFile.ResourceString)
以便将它作为HTML打印。