我在 MySQL 中有一个表,其中包含多个列和一个名为 "abstract"
的列,我想删除 "abstract"
中存在的所有非 utf 字符,因为我需要将它们输入到文本挖掘程序中。摘要包含大量十六进制值、数学符号等。
问题是我一直在尝试使用多种方法来转换它们,但都失败了:
将数据导出到notepad++中,使用正则表达式过滤掉字符(仅保留字母数字、特殊字符)并用空格替换它们。之后,使用
\r\n
正则表达式删除 notepad++ 中的CR LF
。问题:数据变得困惑(行和分隔符)。将数据导出到notepad++中,将编码改为ansi,解码为无BOM的utf-8。问题:它更改为中文或韩文字符,并且没有更改回非 utf。
想尝试mysql中的步骤,通过
alter table修改
到varchar
和字符集latin
,再次修改为blob
,并再次修改为带有字符utf-8
的varchar
。问题:我的抽象数据太长,并且初始数据类型是blob。
我无法将其更改为其他数据类型,因为mysql不会接受它并说数据太长并且因为它有不相关的字符串对于 varchar 数据类型
有人知道如何解决这个问题吗?
最佳答案
这可以工作:
- 使用方法 1,但删除 CR/LF。
- 将数据导入回数据库并删除其中的 CR/LF。
关于mysql - 将mysql中所有非utf8字符改为utf-8(编码问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367273/