好的,所以我有一个 mysql 数据库,其中包含来自不同客户的输入数据。客户被告知他们的数据应该只编码为 utf8,但是我意识到目前没有检查这一点,有些人正在使用未编码为 utf8 的字符。我们打算添加一些检查,但为了清理数据,已经有一个 sql 或 mysql 查询(或管理命令)将向我显示未编码为 utf8 的数据。
对不起,如果这是一个愚蠢的问题,我是一名 Linux 系统管理员,对数据库的接触有限。
谢谢
乙
dar*_*onw 16
您可以通过将字节长度与列上的字符长度进行比较来检查(非)UTF-8 数据的存在,例如:
SELECT * FROM MyTable
WHERE LENGTH(MyColumn) <> CHAR_LENGTH(MyColumn)
Run Code Online (Sandbox Code Playgroud)
多字节字符将具有更大的LENGTH
(字节),因此您需要查找不满足该条件的地方。
请注意,MySQL 的utf8
字符集不是真正的 Unicode UTF-8,因为它只支持每个字符最多 3 个字节。如果您的 MySQL 高于 5.5.3,您可以使用utf8mb4
每个字符获取 4 个字节。
归档时间: |
|
查看次数: |
20952 次 |
最近记录: |