mysql写入数据和查询数据时编码转化的流程

一.个人总结

写入数据:

客户端(控制台)------------>链接器(connection)------------>表(table  也可以写字段编码,一般字段编码默认与表编码一致)

说明:1.客户端也就是输出SQL语句的地方,通常为控制台,character_set_client变量要与控制台编码一致,比如,控制台编码为简体中文(活动代码页 936),则character_set_client=gb2312;

           2.连接器编码,也就是character_set_connection,通常与客户端编码character_set_client保持一致(后面查询时用到的character_set_results也与character_set_client一致)

           3.mysql中表的编码一般固定设置为UTF-8就可以,mysql中如果不指定编码格式,会默认集成上级编码,比如:表中字段编码默认继承表的编码,表的编码默认继承数据库(database)编码,数据库的编码                默认继承服务器(server)的编码,服务器编码一般可以在mysql初始化时设置为UTF-8,后面如果不指定特定编码,则  数据库(database),表(table),字段(column)都默认继承上一级编码。

查询数据:

表(table)------------>结果集(results)-------------->控制台(显示结果集)

说明:1.表的编码上面讲过(上面第3点),这里就不再赘述。

           2.结果集编码(character_set_results)与客户端编码一致(character_set_client),也即是说控制台编码为中文简体,则character_set_client=gb2312,character_set_results=gb2312,同时连接器编码                          character_set_connection=gb2312;

           3.mysql中cahracter_set_server,character_set_database,character_set_system一般都设置为UTF-8即可;

                           character_set_client,character_set_results,character_set_connection的编码设置与控制台编码(详情百度活动代码页)一致。

参考资料:

                  https://blog.csdn.net/kxcfzyk/article/details/35283041

                  https://www.cnblogs.com/wj-1314/p/9147166.html

                  https://www.cnblogs.com/muxiaoye/p/368f31706428ac42b43a1ec74df3d3a5.html

posted @ 2020-08-06 19:21  文泰来  阅读(562)  评论(0)    收藏  举报