为啥我的 View 是 utf8 以及如何将其更改为 latin1
Posted
技术标签:
【中文标题】为啥我的 View 是 utf8 以及如何将其更改为 latin1【英文标题】:Why is my View utf8 and how can I change it to latin1为什么我的 View 是 utf8 以及如何将其更改为 latin1 【发布时间】:2012-02-23 22:11:58 【问题描述】:我遇到了一个问题,客户端程序需要使用视图,但它需要 latin1 格式的结果。 这是我得到的:
mysql> show global variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> Select CHARACTER_SET_CLIENT, COLLATION_CONNECTION FROM information_schema.VIEWS v;
+----------------------+----------------------+
| CHARACTER_SET_CLIENT | COLLATION_CONNECTION |
+----------------------+----------------------+
| utf8 | utf8_general_ci |
+----------------------+----------------------+
【问题讨论】:
你能告诉你数据库、表和视图创建脚本吗? 【参考方案1】:尝试运行以下命令:
SET character_set_client = latin1;
SET character_set_results = latin1;
SET character_set_connection = latin1;
DROP VIEW your_view;
CREATE VIEW your_view as (
here_goes_your_view_query);
基本上我们正在重新创建视图。我已经在本地对其进行了测试并且它工作正常,即使在将数据库、表和列设置为默认为 utf8 之后也是如此
【讨论】:
【参考方案2】:您需要使用以下命令更改连接设置:
SET character_set_client=latin1
SET character_set_connection=latin1
SET character_set_results=latin1
【讨论】:
从我对全局变量的查询中可以看出,它们都已设置为 latin1。 哦,是的,对不起,我读得太快了。你有什么样的问题?您的输出中是否有错误的编码字符? 是的。它们以 utf-8 的形式出现在视图中,我必须(出于业务需求)让它们以 latin1 的形式出现。以上是关于为啥我的 View 是 utf8 以及如何将其更改为 latin1的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Delphi IBX TWideMemoField 转换 UTF8 字符串中的字节顺序以及如何避免它?