Navicat数据库中文显示乱码与无法执行带中文注解的SQL语句的解决方案

本文介绍了在Navicat中遇到的两个数据库问题:中文乱码和无法执行带中文注解的SQL语句。核心解决方案是修改Navicat连接数据库的编码设置为自动,避免使用936(ANSI)或65001(UTF-8)。故障1是'Failed to update tables dictionary object',删除中文注解仅是临时解决,根源是编码不匹配。故障2是表内中文字符串乱码,通过系统命令行确认并修改编码后问题解决。面对中文乱码问题,应检查所有涉及编码的环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本次使用Navicat时遇到了2个数据库相关的bug,但是是同一个原因导致的。

这两个故障分别是:

  • 中文乱码
  • 无法执行带中文注解的SQL语句

由于我是先遇到困难,再依次解决表面问题,最后才发现根本问题。

因此本次我将先讲核心解决方案,再讲故障的具体表现。

一方面方便遇到同类型故障的人可以更为轻松的找到适合自己的解决方案,另一方面,本次解决故障的思路值得作为参考。

核心解决方案

本次故障的根本原因是Navicat连接数据库时编码选择错误,我原本的编码为936(ANSI)当我修改编码为自动时,两个故障不会发生。
需要注意的是,应该改为自动而不是(65001)utf-8

修改如下:

在这里插入图片描述

故障1:Failed to update tables dictionary object

含义直译为:未能更新表字典对象。

这个故障是我在进行数据库导入的时候发生的,并且发生多处,初步搜索同类型问题后得到基础解决方案:

删除中文注解。

删除后导入成功,但是后期排

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值