.Net 资源文件 (App_GlobalResources) 中的回车/换行
-
06-09-2019 - |
题
我将几段文字保存在一个 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>