3

文字列を stringbuilder から文字列に変換するときに問題があります。この問題はこの問題と似ていますが、少し異なります。

これは私のコードを簡略化したものです:

StringBuilder sb = new StringBuilder();
sb.Append("\"");
sb.Append("Hello World");
sb.Append("\"");

string test = sb.ToString();

デバッガーでは、sb 値は次のようになります。

"Hello World"

デバッガーでは、テスト文字列の値が次のように変更されます。

\"Hello World\"

テスト文字列値をブラウザに返すとき、velue はまだエスケープされています。

\"Hello World\"

文字列置換を使用してみました:

test = test.Replace("\"", "");

運が悪かったので、\" の代わりに ASCII 文字を追加しようとしましたが、別の追加も試しました

sb.Append('"');

これらはすべて運が悪い。誰かがまだエスケープ文字を取得している理由とそれを取り除く方法を正しい方向に向けることができますか.

ご意見をお寄せいただきありがとうございます。

4

4 に答える 4

1

わかりました。WCFでは、stringBuilderが自動的にエスケープ引用符を追加しているようです。これはあなたがそれから逃れることができないことを意味します。また、私はこれについてすべて間違っていました。シリアル化されたJSONオブジェクトを返すはずの文字列を返そうとしていました。

于 2013-02-19T10:59:58.767 に答える
0

文字列の前に逐語的な文字列リテラル「@」を使用してから、引用符を 2 回入力できます。これにより、文字列シーケンスでエスケープを使用する使用が削除されます:)

StringBuilder sb = new StringBuilder();
sb.Append(@"""");
sb.Append("Hello World");
sb.Append(@"""");

string test = sb.ToString();
于 2015-04-04T09:35:19.257 に答える