加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml序列化,异常:(十六进制值 0x1D)是无效的字符

发布时间:2020-12-16 05:27:52 所属栏目:百科 来源:网络整理
导读:产生原因是xml文件中包含低位非打印字符造成的 处理方法:在产生xml文件的时候,过滤低位非打印字符 把一个字符串中的低序位ASCII字符替换成 {0:x}字符 转换ASCII0-8 转换ASCII11-12 转换ASCII14-31 /// summary /// 把一个字符串中的 低序位 ASCII 字符 替换
产生原因是xml文件中包含低位非打印字符造成的
处理方法:在产生xml文件的时候,过滤低位非打印字符

把一个字符串中的低序位ASCII字符替换成 {0:x}字符
转换ASCII0-8
转换ASCII11-12
转换ASCII14-31

/// <summary>
/// 把一个字符串中的 低序位 ASCII 字符 替换成{0:X} 字符
/// 转换 ASCII 0 - 8 ->
/// 转换 ASCII 11 - 12 -> -
/// 转换 ASCII 14 - 31 ->  - 
/// </summary>
/// <param name="tmp"></param>
/// <returns></returns>
public static string ReplaceLowOrderASCIICharacters(string tmp)
{
StringBuilder info = new StringBuilder();
foreach (char cc in tmp)
{
int ss = (int)cc;
if (((ss >= 0) && (ss <= 8)) || ((ss >= 11) && (ss <= 12)) || ((ss >= 14) && (ss <= 32)))
info.AppendFormat("{0:X}",ss);
else info.Append(cc);
}
return info.ToString();
}

本人亲测,上面代码可用

另xml序列化的时候,允许使用CDATA,原因未知

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读