MySQL:字段中的空白字符实际上不是空格。它是什么?

时间:2012-03-15 17:25:09

标签: mysql ruby-on-rails ruby encoding whitespace

我在MySQL表的字段中有一个字符串。

它是VARCHAR,表格编码是utf8。

该字段的内容为one two three

如果我运行select * from table where content like '%one two%';,则会返回该行 但是,如果我运行update table set content = REPLACE(content, " ", "+;;");,则结果为one two+;;three

那么,第一个“空白”角色是什么?

我正在使用这个表和Ruby on Rails应用程序。 Ruby也不认为它是一个空格字符。 (例如,如果我将字符串拆分为“”,则不会在第一个空格上拆分)

知道发生了什么事吗?

感谢。

1 个答案:

答案 0 :(得分:2)

它可能是一个非中断空格字符(UTF8中的2个字节:0xC2 0xA0)。这不是空格,将它与空格进行比较会产生错误。

您可以像这样更新表格:

UPDATE table SET column = REPLACE(column, ' ', ' ');

请注意,您应确保第一个“空格”实际上是您要替换的字符。