【问题标题】:Changing all non-utf8 characters into utf-8 in mysql (encoding problems)在mysql中将所有非utf8字符更改为utf-8(编码问题)
【发布时间】:2014-12-09 15:05:00
【问题描述】:

我在 MySQL 中有一个包含几列的表和一个名为 "abstract" 的列,我想删除 "abstract" 中存在的所有非 utf 字符,因为我需要将它们输入到文本挖掘程序中​​。摘要包含许多十六进制值、数学符号等。 问题是我一直在尝试使用多种方式转换它们,但它们都失败了:

  1. 将数据导出到notepad++,使用正则表达式过滤掉字符(只保留字母数字、特殊字符)并用空格替换。之后使用\r\n 正则表达式在记事本++ 中删除CR LF。问题:数据混乱(行和分隔符)。

  2. 将数据导出到 notepad++,将编码更改为 ansi,解码为 utf-8,无需 BOM。问题:它变成了中文或韩文字符,并没有变回非utf。

  3. 想试试mysql中alter table modifyvarcharcharacter set latin的步骤,再修改成blob,再修改成varcharcharacter utf-8。问题:我的抽象数据太长了,初始数据类型是blob.我不能把它改成其他数据类型,因为mysql不接受,说数据太长,因为它有与varchar数据类型无关的字符串

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: mysql regex encoding utf-8 notepad++


    【解决方案1】:

    这可以工作:

    1. 除了删除 CR/LF 之外,使用您的方法 #1。
    2. 将数据导入回数据库并删除那里的 CR/LF。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多