.Net 资源文件 (App_GlobalResources) 中的回车/换行
我将多个文本保存在 App_GlobalResources.resx
文件中。
文本必须是多行的,我需要让它们包含换行符。 但是,当我阅读内容时,所有换行符都消失了(打印 \r\n
,而不是 CRLF 10 13
控制字符)。
我知道当我阅读内容时,我可以通过将 \r\n
(或其他任何相关内容)重新替换回 CRLF 来解决这个问题,但我想知道为什么这些明显以文本为目标的 resx文件忽略控制字符 - 并且 CRLF 很重要 - 如果有人知道是否有设置或其他东西可以使其自然工作。
I'm keeping several texts in an App_GlobalResources.resx
file.
The texts have to be multi-line and I need to have them contain line feeds. However, when I read the contents, all line feeds are gone (\r\n
is printed, not as CRLF 10 13
control character).
I know that I could work around this by re-replacing \r\n
(or anything else for that matter) back to CRLF when I read the contents, but I wondered why these clearly text-targeted resx files ignore control characters - and CRLF is kind of important - and if anybody knows if there's a setting or something that would enable this to work naturally.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我使用 VB.NET Express Edition 来测试这一点。
在资源编辑器中(您可以在其中指定资源名称和字符串内容)将字符串内容以 Shift+Enter 分隔。
假设您要输入
“hello”,然后输入 Shift+Enter 和“world”。
如果您查看 Resources.Resx 文件(这是一个 xml 文件),您可以看到它创建了一个具有属性
xml:space="preserve"
的节点。第二个选项
此外,您可以手动编辑Resources.resx并将内容修改为CDATA部分下的内容。
假设您有名为“example”的字符串。 在 Resources.resx 中搜索它并更改内容以在其中包含 CDATA 部分,而不是使用简单的值。
例如
I used VB.NET Express Edition to test this.
In the resource editor (where you can specify the name of the resource and string content) put the string content separated by Shift+Enter.
Lets say you want to type in
Type "hello" followed by Shift+Enter and "world".
If you look at the Resources.Resx file (which is an xml file), you can see that it creates a node with the attribute
xml:space="preserve"
.2nd option
Also, you can edit the Resources.resx manually and modify the content to be under CDATA section.
Assume that you have the string named "example". Search for it in Resources.resx and change the content to have CDATA section inside it as against having a simple value.
e.g.
使用 Shift+Enter 插入新行。
Use Shift+Enter to insert a new line.
使用 resx 设计器界面时
如果您实际上将文本输入到 resx 文件中,那么您将使用
Shift+Enter
如其他答案中所述。
如果您在 resx 中粘贴文本 - Visual Studio 将以与现有格式相同的格式粘贴文本(包括换行符/多行)。
打开XML格式的resx文件时
(使用查找和替换找到resx文件。当您从“查找结果”面板中单击该文件时,VS将打开XML格式的resx文件)
在这里您可以根据需要添加文本(在值标签中)和格式将被保留。
When using the resx designer interface
If you are actually typing the text into the resx file then you would use
Shift+Enter
as noted in other answers.
If you are pasting text in the resx - Visual Studio will paste the text in the same format as it already is (including linebreaks / multiline).
When opening the resx file in XML format
(locate the resx file using find and replace.. when you click the file from the 'find results' panel, VS will open the resx file in XML)
Here you can add text as you like (in value tags) and formatting will be preserved.
好吧,在我的情况下有效的是使用像这样的
标签:这里有一篇包含更多信息的帖子:在 resx 资源文件中添加换行符
如果您碰巧在 ASP.NET 中使用 Razor 视图引擎您需要使用 MVC:
以便将
打印为 HTML。Well, what worked in my situation was using a
<br>
tag like this:There's a post with more info here: Putting a line break in an resx resource file
If you happen to be using Razor view engine with ASP.NET MVC you need to use:
so that it prints the
<br>
as HTML.可以使用文本编辑器编辑
*.resx
文件来添加换行符。您甚至可以在 Visual Studio 中执行此操作:
打开方式...
带编码的 XML(文本)编辑器
确定< /code>
确定
进行编码选择(自动检测)内的文本
标签。 对于换行符,只需按Enter
即可。 注意:删除换行后的前导空格。 否则它们也会被插入。使用 Visual Studio 2017 进行测试。
示例:
It's possible to edit the
*.resx
file with a text editor to add linebreaks.You can do it even within Visual Studio:
Open with ...
XML (Text) Editor with Encoding
OK
OK
again for encoding selection (auto-detect)<value>
tag. For linebreaks just pushEnter
. Note: Remove the leading spaces after linebreak. Otherwise they are inserted, too.Tested with Visual Studio 2017.
Example: