これらの制御文字は有効な XML データを形成できないため、SOAP 応答で ASCII 制御文字を破棄する必要があります。
以下の正規表現を使用して、制御文字を破棄しました。
@"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]"
ただし、ASCII 制御文字 - DLE (データ リンク エスケープ) は、上記の REGEX では処理されません。
すべての ASCII 制御文字を破棄する正規表現について教えてください。
これらの制御文字は有効な XML データを形成できないため、SOAP 応答で ASCII 制御文字を破棄する必要があります。
以下の正規表現を使用して、制御文字を破棄しました。
@"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]"
ただし、ASCII 制御文字 - DLE (データ リンク エスケープ) は、上記の REGEX では処理されません。
すべての ASCII 制御文字を破棄する正規表現について教えてください。
与えられたリンクを通過しました。
http://www.theplancollection.com/house-plan-related-articles/hexadecimal-value-invalid-character
リンクによると、以下の正規表現は有効なXML文字のセット用です。
string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
return Regex.Replace(text, re, "");
DLEは、この一連の有効な表現自体に含まれていると思います。したがって、交換されません。正規表現に慣れていません。私が間違っている場合は訂正してください。
DLE は\x10
、正規表現にありません。
また、 ですべての英数字も破棄しているようです\x20-\xD7FF
。あれは正しいですか?