常常遇到 .NET 的 WebService or XML 無法支援特殊字元.
最後發現根據微軟的 XML 合法字元如下 :
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
所以需要下面的 code 加以過濾 :
public class XmlTextConvert
{
// XML The the spec states:
// Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
protected static Regex InvalidXMLCharacter =
new Regex(@"[\u0000-\u0008|\u000B|\u000C|\u000E-\u001F|\uD800-\uDFFF|\uFFFE|\uFFFF]",
RegexOptions.Compiled);
public static string XmlConvertStr(string src)
{
return InvalidXMLCharacter.Replace(src, "");
}
}
0 意見:
張貼留言