MYSQL中数据库服务器、连接、数据库、表、字段的字符编码
对于数据库来讲,有一个很重要却容易忽略的重要概念:字符集和字符编码。
1.字符集:是多个字符(英文、汉字、其他国家语言字符)的集合
常见的字符集有ASCII字符集、LATIN1字符集、GBK字
对于数据库来讲,有一个很重要却容易忽略的重要概念:字符集和字符编码。 1.字符集:是多个字符(英文、汉字、其他国家语言字符)的集合 常见的字符集有ASCII字符集、LATIN1字符集、GBK字符集、UTF8字符集。 ASCII字符编码:一个英文字母(不分大小写)占用一个字节的空间,一个中文汉字占用两个字节的空间。 LATIN1字符编码:是ASCII字符编码的扩展。 GBK字符编码,是对GB2312编码的扩展,使用两个字节表示一个字符。 UTF8字符编码:一个英文字符占用一个字节的存储空间,一个中文(含繁体)占用三个字节的存储空间。 在MYSQL中通过如下方式mssql数据库,查看字符集相关信息 (1)查看连接客户端、连接、数据库服务器、数据库等字符集
需要注意的是以下几个参数: character_set_client:表示客户端使用的字符集。 character_set_connection:表示连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。 character_set_server:表示服务器使用的字符集。 character_set_database:表示创建数据库使用的字符集。 character_set_results:表示数据库给客户端返回时使用的编码格式。 MYSQL从发送请求到获得结果的经过几次字符集的转换过程,如下图: 从上面可以看到character_set_database和character_set_server的编码不一样,一个为utf8,另一个为utf8mb4。这两个有什么不同呢? 在MYSQL5.5.3之前,utf8编码最大仅支持3个字节表示一个字符。在MYSQL5.5.3之后,增加了utf8mb4,最大可用使用4个字节表示一个字符。其可以用于支持Emoji 表情(Emoji是一种特殊的 Unicode 编码)和一些不常见的汉字、新增的unicode字符等。 所以在mysql中最好使用utf8mb4字符集。 (2)查看某个数据库、某个表、某个字段的字符编码
(3)修改客户端、连接、结果字符编码,修改数据库、某个表、某个字段的字符编码
临时修改编码:
利用KETTLE向MYSQL推送数据时出现乱码的解决方案 比如向mysql数据库中推送,出现这样的错误:Incorrect string value: '\xF0\x9F\x91\x80' for column 可以在kettle的目的数据库连接中,设置如下即可。 第一步:在【高级】中,输入:set names utf8mb4; 第二步:在【选项】中,输入:defaultFetchSize 500,useCursorFetch true,characterEncoding utf8,即可。 (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |