深入字符集设置,深入字符集(深入字符集设置,深入字符集怎么设置)

lxf2023-05-07 19:57:01

深入到mysql字符集设置和Mysql字符集。
在mysql客户端与mysql服务端之间,存在着一个字符集转换器。 character_set_client =>gbk:转换器就知道客户端发送过来的是gbk格式的编码 character_set_connection=>gbk:将客户端传送过来的数据转换成gbk格式 character_set_results =>gbk: 注:以上三个字符集可以使用set names gbk来统一进行设置 例子: create table test( name varchar(64) NOT NULL )charset utf8;#这里的utf8表示服务器端的字符编码 首先,往数据表test中插入一条数据 inert into test values('测试'); 则,数据;测试&;在数据库中是以;utf8&;格式保存的 过程: 首先,通过mysql客户端,将数据发送给Mysql服务器,经过字符集转换器的时候,由于character_set_connection 值为gbk,所以会将客户端发送过来的数据转为gbk格式,紧接着,字符集转换器将数据要传送给服务器的时候,发现服务器是以utf8保存数据的,所以,在其内部会自动将数据由gbk转换成utf8格式 什么时候会出现乱码 通过 header('Content-type:text/html;charset=utf8');将客户端的数据转成utf8格式的,在数据经过;字符集转换器&;的时候,由于character_set_client=gbk,而character_set_connection也等于gbk,所以从客户端传送过来的数据(其实是utf8格式)并不会被转换格式。 但是,字符集转换器在讲数据发送给服务器的时候,发现服务器要的格式是utf8,所以会将当前数 据当做gbk格式来处理,从而转成utf8(但是,这一步其实已经错了。。。)。 2. result与客户端页面不符合的时候 将返回结果的格式设置为utf8,但是客户端接受的格式为gbk,因此会出现乱码


通过show character set 语法,可以显示所有可用的字符集 latin字符集 注意:Maxlen列显示用于存储一个字符的最大的字节数目。 utf8字符集 gbk字符集 什么时候会丢失数据? 对比以上三幅图可以知道,每种字符集中,用于存储一个字符的最大的字节数目都不同,utf8最大,latin最小。所以在经过字符集转换器的时候,如果处理不当,会造成数据丢失,而且是无法挽回的。 比如: character_set_connection的值改为lantin的时候 从客户端发送过来的gbk数据,会被转成lantin1格式,因为gbk格式的数据占用的字符数较多,从而会造成数据丢失 总结:

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!