如何在从DB返回的数据中替换无效字符0x1E

时间:2012-04-25 05:55:51

标签: c#

我从DB收到一些无效日期 - 无效字符0x1E,如何用此替换它 - “”?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT REPLACE(myfield, CHAR(30), '') FROM mytable;

这应该从myfield删除任何0x1E字符。

或者,要清理数据库表,请使用:

UPDATE mytable SET myfield = REPLACE(myfield, CHAR(30), '')
  WHERE myfield LIKE ('%' + CHAR(30) + '%');

答案 1 :(得分:1)

如果要尝试序列化xml-characters here is the similar question,则会出现此错误。

最简单的解决方案是从源字符串中删除禁用字符:

var newString = new string(
    str.Select(c => (int)c)
    .Where(i => i >= 32 || i == 9 || i == 10 || i == 13)
    .Select(i => (char)i)
    .ToArray());