1

.NET 2 ASMX Web サービスである非常に基本的なシステムのメッセージング システムがあります。メッセージをプッシュし、受信側でフォーマットされるようにメッセージに改行記号を入れたいと考えています。たとえば、"Hello\n\nMy Name Is..." のような文字列を送信し、2 つの改行を入れたいとします。受信者がテキストを読み取ると、実際にはテキストに \n が出力されます。\n を C# で書いているかのように解釈するにはどうすればよいですか? または \t など

ありがとうございました。

4

4 に答える 4

2

システムで改行を表すために使用される文字を挿入するには、Environment.NewLineを使用してメッセージを作成する必要があります。

参考資料はこちら

ただし、Environment.NewLine の使用にはいくつかの問題があります。
たとえば、メッセージはこのように書く必要があります

string msg = "Hello" + Environment.NewLine + Environment.NewLine + "My Name Is...";

プログラマーの観点から使用するのは少し面倒です。

次に、メッセージを受け取り、プレースホルダーの場所に Environment.NewLine chars を挿入する文字列クラスの拡張メソッドを作成できます。

この例では | を使用しています。改行位置のプレースホルダーとしての (パイプ) 文字。

public static string InsertLineBreaks(this string inMsg)
{
    Strinbuilder sb = new StringBuilder(inMsg);
    sb.Replace("|", Environment.NewLine);
    return sb.ToString();
}

この拡張機能をこの方法で呼び出すことができます

string msg = "Hello||My Name Is...".InsertLineBreaks();
于 2012-05-24T23:46:28.320 に答える
1

Web サービスは、キャリッジ リターンが "%0D" としてリストされたメッセージを送り返している可能性があります。私が自分のプログラムで行ったことは、次の使用です。

str.Replace("%0D", Environment.NewLine);

それは私にとってはうまくいくようです。

私はあなたも使用できると確信しています:

str.Replace("%0D", "\n");
于 2012-05-24T23:58:08.273 に答える
0

これを使って:

string returnString = "Hello" + Environment.NewLine+ "My Name Is..";
于 2012-05-25T03:27:47.623 に答える
0

\nを、ブラウザによって新しい行として解釈されるもの、つまりに置き換える必要があり<br/>ます。HTML文字列として使用していると思います。

さらに、それが HtmlEncoded ではないこと、つまり が に<br/>変換されていないことを確認する必要があります&lt;br/&gt;。JSON シリアル化を使用している場合、これは発生しません。ただし、XML としてシリアル化し、クライアント側で適切にデコードされていない場合に発生します。

于 2012-05-25T00:19:08.433 に答える