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

本文关键字:数据 0x1E 字符 无效 返回 数据库 何替换 替换 | 更新日期: 2023-09-27 18:32:06

我从DB得到一些无效的日期 - 一个无效的字符0x1E,我怎样才能用这个替换它 - " ?

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

如果要尝试序列化 xml 字符,则存在此错误,这是类似的问题。

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

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

尝试这样的事情:

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

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

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

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