2

App.Configの行は次のとおりです。

<add key="CheckFileFormatString" value="P{0}\t&quot;{1}, {2}&quot;\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t{9}\t{10}"/>

これを文字列に入れるコードは次のとおりです(.AppSettings.Get問題がない限り、非推奨の呼び出しは無視してください)。

string format = ConfigurationSettings.AppSettings.Get("CheckFileFormatString");

...そして結果の文字列は次のとおりです。

P{0}\\t\"{1}, {2}\"\\t{3}\\t{4}\\t{5}\\t{6}\\t{7}\\t{8}\\t{9}\\t{10}

余分なバックスラッシュはどこから来ていますか?

4

2 に答える 2

6

\ tはC#などのタブの記号ですが、XMLの場合はそうではありません。\tは2文字として解釈されています。&#09;設定ファイルで\tをに置き換えてみてください。

于 2009-08-26T14:10:32.920 に答える
1

余分な円記号は、デバッガーが値を表示する方法に由来します。

文字列値は、コードで文字列リテラルとして記述するのと同じように表示されるため、文字列内の各円記号は\として表示されます。

バックスラッシュはXMLのエスケープ文字ではないため、文字列のバックスラッシュはXML値に由来します。&#09;リチャードが説明したように、XML値でタブ文字を取得するにはを使用する必要があります。

于 2009-08-26T14:49:02.517 に答える