100% ローカル — データがブラウザの外に出ることはありません

C#エスケープ|貼ればそのままコンパイルが通るリテラルにする

テキストを通常のC#文字列リテラル用に逃がします。.NET 固有の \a、\v、\0 も含めて扱うので、貼り付けた場所でその行はそのまま問題なくコンパイルが通ります。

高速 プライベート Cookieゼロ

Text 入力

.NET Escaped 出力

このツールの動作

C#の通常の文字列リテラル、つまり "..." の形式向けにエスケープします。逐語的な @"..." 形式ではありません。

  • バックスラッシュは二重化されます。
  • " はエスケープされます。' は char を区切るものであって string ではないため、そのまま残ります。
  • \a(ベル)、\v(垂直タブ)、\0(NUL)が名前付きシーケンスとして出力されます。この3つが、C#のエスケープ集合をJavaScriptのそれと分ける点です。
  • 改行、復帰、タブ、後退、改ページはいつもどおりの名前付きの形になります。
  • 残りの制御文字は \uXXXX になります。

非ASCII文字はそのままです。C#のソースはUTF-8であり、アクセント記号をエスケープしても読みにくくなるだけだからです。

こんなときに使います

接続文字列の一部、正規表現、ファイルパス、ログのテンプレートなどを .cs ファイルに直接書き込むときです。よくあるのはパスで、通常のリテラルでは \\server\share を二重にする必要があり、間違えるとディレクトリ区切りではなくタブや改ページになってしまいます。

このツールがしないこと

リテラルの形式を選んではくれません。テキストの大部分がバックスラッシュである場合、たとえばWindowsのパスや正規表現なら、逐語的な @"..." リテラルのほうがここで生成されるエスケープ済みの形より読みやすいのが普通で、そちらは別の規則に従います。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

逐語的文字列(@"...")でも使えますか?
いいえ。そしてこの違いは重要です。逐語的文字列ではバックスラッシュはそのままの文字であり、ダブルクォートは二重にすること("")でエスケープします。このツールが出力するのは通常のリテラルなので、@ の後ろに貼り付けると \n が2文字としてそのまま見えてしまいます。
JavaScript用との違いは何ですか?
C#は \a(ベル)と \0(NUL)を名前付きシーケンスとして認識し、バッククォートもシングルクォートの文字列も持ちません。そのためエスケープされるのはダブルクォートだけで、JavaScriptが \u0007 と書く箇所に \a が出力されます。
アクセント付き文字はエスケープされますか?
いいえ。C#のソースファイルは既定でUTF-8であり "café" は完全に有効なので、非ASCIIのテキストは読みやすいまま残ります。

関連ツール