stripcslashes() は、長い文字列内の "\x" タイプの要素を検索します (ここで、'x' は任意の文字、または複数の文字である可能性があります)。「x」が意味のあるものとして認識されない場合は、「\」を削除するだけですが、それが有効な C スタイルのエスケープ シーケンスとして認識される場合 (つまり、「\n」は改行、「\t」はタブなど)。 )、私が理解しているように、認識された文字が代わりに挿入されます: \t は、文字列内のタブ文字 (0x09 だと思います) に置き換えられます。
同様の機能を自分で構築せずに.netフレームワークに同じことをさせる簡単な方法を知りません。これは明らかにそれほど難しいことではありませんが、処理するエスケープ シーケンスを知る必要があります。
処理が必要な入力内の唯一のものは、特定の 1 つまたは 2 つのシーケンス (たとえば、タブ文字) であることがたまたまわかっている場合 (または base64 テキストを調べてわかった場合)、それは非常に簡単になり、次のスニペットは使用を示していますString.Replace() の:
string input = @"Some\thing"; // '@' means string stored without processing '\t'
Console.WriteLine(input);
string output = input.Replace(@"\t", "\t");
Console.WriteLine(output);
もちろん、本当に単純にすべてのスラッシュを削除したい場合は、次のようにします。
string output = input.Replace(@"\", "");