2011-03-21 54 views
3

我有一个编码问题 - 我有数据存储在MySQL表中。在做一些工作的同时,我桌子上的一个专栏收集了一些无用符号和否定符号;或通常的钻石w /问号取决于编码。而不是手动更改每一行,是否有一种快速方法来查找和销毁数据库中的字符?编码字符结束在我的MySQL

我玩过我的浏览器设置以及使用UTF-8,Western 1252和ISO-8859-1。我对之前的数据编码感到满意,我只是想将不正确编码的发掘者移出数据库。我试着编写一个快速的PHP脚本来抓取所有的字符并替换它们,但我无法弄清楚它们甚至是什么。有任何想法吗?

这里有字符在UTF-8 ¬†

回答

1

看到我不知道你是否能真正做到这一点,但

UPDATE `table` SET column = replace(column, REGEXP '[\x00-\x1F\x80-\xFF]', ''); 

确保运行此作为选择第一或做这在一个临时的沙箱分贝。我不知道这是否合法在MySQL中。

我知道有第三方正则表达式库可以做到这一点,但需要更改你的分贝。我不知道这些是如何工作的。

编辑

你最好写一个小PHP脚本来为你做这个。上述正则表达式将会去除垃圾字符。

$data = preg_replace_all('/[\x00-\x1F\x80-\xFF]/', '', $data); 

再次,如果它是不明确之前:不要盲目地粘贴到我上面的SQL语句,因为我不知道会有什么实际发生。

+0

工作就像一个魅力 - 谢谢! – thebarless 2011-03-21 23:54:55