1. ホーム
  2. newline

[解決済み] .Netリソースファイル(App_GlobalResources)におけるキャリッジリターン/ラインフィードについて

2022-12-09 08:46:49

質問

いくつかのテキストを App_GlobalResources.resx ファイルに保存しています。

テキストは複数行でなければならないので、改行を含むようにする必要があります。しかし、内容を読むと、すべての改行が消えています ( \r\n とは表示されません。 CRLF 10 13 の制御文字としてではなく)。

を再置換することで回避できることは知っています。 \r\n (を CRLF に置き換えることで回避できることは知っていますが、明らかにテキストをターゲットとした resx ファイルが制御文字を無視するのはなぜなのか、CRLF はある意味重要なのですが、これを自然に動作させるための設定か何かがあるのか、誰かご存知でしたら教えてください。

どのように解決するのですか?

VB.NET Express Editionを使ってテストしてみました。

リソースエディタ(リソースの名前と文字列の内容を指定するところ)に、文字列の内容を シフト + Enter .

を入力するとします。

hello  
world

hello"と入力し、その後に シフト + Enter と、"world"が表示されます。

Resources.Resx ファイル (これは xml ファイルです) を見てみると、ノードが作成され、そのノードには属性として xml:space="preserve" .

第2候補

また、Resources.resxを手動で編集し、CDATAセクションの下にあるコンテンツを変更することもできます。

example" という名前の文字列があると仮定します。Resources.resx でそれを検索し、単純な値を持つのではなく、その内部に CDATA セクションを持つようにコンテンツを変更します。

<data name="example">
<![CDATA[
hello
world
1
2   3
4
]]>  </data>