从 mysql 数据中删除不可见的退格字符

Posted

技术标签:

【中文标题】从 mysql 数据中删除不可见的退格字符【英文标题】:Remove invisible backspace characters from mysql data 【发布时间】:2017-01-18 03:04:22 【问题描述】:

我的数据集中有以下隐形字符

我相信是这个角色

http://www.fileformat.info/info/unicode/char/0008/index.htm

如何删除它?我试过了

UPDATE events SET `value` = TRIM(REPLACE(`value`, CONVERT(char(8) USING hp8), ''))

【问题讨论】:

【参考方案1】:

文字退格字符的 mysql 转义序列是 \b

请参阅此处的“特殊字符转义序列”:

http://dev.mysql.com/doc/refman/5.7/en/string-literals.html


如果我需要从字符串列中删除该字符,我会使用如下表达式:

 REPLACE(foo,'\b','')

在尝试 UPDATE 之前,我会在 SELECT 语句中测试该表达式,例如

SELECT t.foo
     , REPLACE(t.foo,'\b','')` AS new_foo
  FROM mytable t
 WHERE t.foo LIKE '%\b%'

【讨论】:

这似乎影响了很多行,但不幸的是并没有摆脱它:(

以上是关于从 mysql 数据中删除不可见的退格字符的主要内容,如果未能解决你的问题,请参考以下文章

Linux终端下的退格和删除键^H ^? ^[[3~ 杂记

关于c语言 转义字符的退格

js禁用firefox中的退格功能

如何从sed输出中删除不可见字符到文件[重复]

UTF 8 String 删除除换行符以外的所有不可见字符

哪个委托方法将调用单击键盘中的退格按钮