博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql之字符编码问题
阅读量:6980 次
发布时间:2019-06-27

本文共 543 字,大约阅读时间需要 1 分钟。

mysql编码分为服务端编码和客户端编码两大类

字段编码, 表编码, 数据库编码这些编码都属于服务端编码,服务端编码决定你可以存哪些字符以及这些字符要哪种规则排序.字段编码优先级最高. 
你插入用什么码属于客户端编码, 你用什么客户端编码都无所谓,只要插入前加个命令set names xxx 就可以了,mysql都会给你转换,你考虑只是客户端编码和服务端编码大小集问题,是否存在映射.(比如服务端编码为GB2312, 客户端编码为BIG5, mysql肯定转换不了)
如果要正常显示字符,客户端编码xxx要和你应用程序的环境编码相同, 否则会无法正常显示(出现乱码), 这是mysql新用户最大的困扰.

 

问:你所说的mysql都会去转换是什么意思?比如我客户端set names 'utf8',表编码为gb2312,这样是不会被正确转换的吧?

答:他会转换啊, 但如果字符无法映射, 他也转换不了, 只能用?代替或省略, 如客户端utf8中的繁体字, 是存不到编码为gb2312的字段里.

set names xxx 好比告诉mysql服务器: "我这边的编码为xxx, 请帮忙帮我转换一下编码"
所以set names xxx很重要, 你不能选错, 一定要和你应用程序的字符环境相同. 

转载地址:http://cvjpl.baihongyu.com/

你可能感兴趣的文章
mysql Can't connect to MySQL server on '' (61)错误记录
查看>>
JVM垃圾回收机制
查看>>
深入剖析Vue源码 - 组件进阶
查看>>
记一次dll构建时机优化
查看>>
【译】Redis Hyperloglog 的转换
查看>>
mysql修改密码
查看>>
《以太坊白皮书》笔记(1)—— 比特币介绍
查看>>
babel es6 to es5
查看>>
【软件开发底层知识修炼】二 深入浅出处理器之二 中断的概念与意义
查看>>
electron打包更新与集成sqlite小总结
查看>>
CentOS 安装 pip
查看>>
React性能优化之代码分割
查看>>
Springmvc+mybatis+shiro+ZooKeeper+Redis+KafKa
查看>>
vue电商项目商品详情放大镜插件
查看>>
深入解析JSON与XML优缺点对比
查看>>
Java行为参数化(二)-Lambda表达式
查看>>
个人到账通知全量分析与总结(到账一时爽,一直到,一直爽~~)
查看>>
JavaScript 中如何实现对象的 deep clone
查看>>
Kotlin运算符重载及其他约定
查看>>
Android源码分析之 IntentService
查看>>