MySQL 1300 无效的 big5 字符串 : '\xC3\x97 '

标签 mysql character-encoding

我不知道这里发生了什么。我的一个数据库服务器在尝试创建一个函数(适用于所有其他服务器)时给我这个错误:

我的职能是

delimiter $$

CREATE DEFINER=`root`@`%` FUNCTION `getreadablesize`(`Width` DECIMAL(13,4),`Height` DECIMAL(13,4),`Type` VARCHAR(64)) RETURNS varchar(64) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
BEGIN

RETURN concat(trim(trailing'.'
        from trim(trailing'0'
            from`Width`)),'\"',
    if(`Height`>0,concat(' × ',trim(trailing'.'
                from trim(trailing'0'
                    from`Height`)),'\"'),''),
    if(`Type`>'',concat(' ',`Type`),''));
END$$

准确的错误信息是

0 row(s) affected, 2 warning(s): 1300 Invalid big5 character string: ' \xC3\x97 ' 1300 Invalid big5 character string: 'C39720'

我的数据库中没有一个是中文的,或者曾经使用过 Big5 字符集?

如果我复制我的模式创建代码,我会得到:

CREATE DATABASE `sterling` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;

编辑: 如果我将时间符号更改为其他符号,它会起作用,但是对于为什么它被视为 Big5 而不是 uft8 仍然没有任何意义


编辑: 显然有些不对劲。如果我运行以下查询,这就是我得到的:

SHOW VARIABLES LIKE 'character_set%';

+-----------------------------+------------------------------+
| 'character_set_client',     | 'big5'                       |
+-----------------------------+------------------------------+
| 'character_set_connection', | 'big5'                       |
+-----------------------------+------------------------------+
| 'character_set_database',   | 'utf8mb4'                    |
+-----------------------------+------------------------------+
| 'character_set_filesystem', | 'binary'                     |
+-----------------------------+------------------------------+
| 'character_set_results',    | 'big5'                       |
+-----------------------------+------------------------------+
| 'character_set_server',     | 'utf8mb4'                    |
+-----------------------------+------------------------------+
| 'character_set_system',     | 'utf8'                       |
+-----------------------------+------------------------------+
| 'character_sets_dir',       | '/usr/share/mysql/charsets/' |
+-----------------------------+------------------------------+

但我的 my.cnf 显然有 default-character-set = utf8mb4 及其在每个适用部分下的所有变体...我将重新启动我的 MySQL 服务器,因为某物绝对是一只脚。

最佳答案

拜托。我重新启动了服务器,但它再也没有回来。我尝试了几乎所有存在的 MySQL 服务器修复步骤,但没有任何效果。最终我让它以安全模式启动,并将 innodb force 标志设置为 6,然后我能够使用 HeidiSQL 提取所有数据(mysqlddump 只是挂起并且从未启动,但 HeidiSQL 实现了自己的导出。)。即便如此,我的 165 张表格中仍有 3 张根本无法阅读。

关于MySQL 1300 无效的 big5 字符串 : '\xC3\x97 ' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44828601/

相关文章:

character-encoding - 非 unicode 与 ASCII 是一回事吗?

java - 如何判断我从网络接收的文本/从文件读取的文本是否使用给定的编码?

javascript - 使用 jQuery 打印日语

php - 在 MySQL 和 PHP 中返回找到值的行的 id

mysql - 如何更新包含逗号分隔值的表行?

mysql - EXPLAIN SELECT 将类型显示为 ALL (SQL)

Java:字符串的字符(以字节为单位)的值是常量吗?

php - 不同版本的 PHP、Apache 和 MySQL 之间的字符编码问题

MySQL选择多个排序依据

mysql - 不存在则插入,存在则更新