首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从命令行中损坏的表名

问从命令行中损坏的表名
EN

Stack Overflow用户
提问于 2014-05-20 16:53:20
回答 1查看 81关注 0票数 1

我的数据库里有两张桌子。我想从MySQL服务器的命令行中看到它们的名字。

代码语言:javascript
复制
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| ╨╖╨░╨║╨░╨╖╤Л         |
| ╨║╨╗╨╕╨╡╨╜╤В╤Л        |
+----------------+
2 rows in set (0.00 sec)

我的第一猜测是他们的名字被错误的字符编码。我找到了下一个命令来查看我正在使用的字符集

代码语言:javascript
复制
mysql> show variables like 'char%';

产出如下:

代码语言:javascript
复制
+--------------------------+----------------------------------------------------+
| Variable_name            | Value
       |
+--------------------------+----------------------------------------------------+
| character_set_client     | utf8
       |
| character_set_connection | utf8
       |
| character_set_database   | utf8
       |
| character_set_filesystem | binary
       |
| character_set_results    | utf8
       |
| character_set_server     | utf8
       |
| character_set_system     | utf8
       |
| character_sets_dir       | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+-----------------------------------------------------+
8 rows in set (0.00 sec)

所以看起来这里没问题,问题就在别的地方。我发现了类似的charsets in MySQL replication问题,所以我的结论是,我的配置存在一个问题。那么,我应该如何修改配置以更改结果呢?

解决了

因此,问题在于控制台编码错误地解释了表名。我通过将表名重命名为拉丁字母来解决这个问题。正如RandomSeed提到的,另一种方法是更改控制台编码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-20 17:02:51

假设您在Windows上(从character_sets_dir假定),控制台使用CP-850编码(或者告诉我,这可能因区域不同而有所不同),因此不能正确解释MySQL客户端发送的UTF-8流。

您可以通过SET NAMES cp850将MySQL与实际的控制台编码相匹配,如果1.字符集在您的安装中可用,2. CP-850支持表名的字符。

或者,change your console encoding (解决方案未测试)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23765718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档