latin mysql 中文_mysql的latin1支持中文
初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的, 确实支持中文! (是初步的结论,只做了初步的分析) 1. 先来看看latin1(参考百度百科) Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。 ISO-8859-1编码是 单字节编码
初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文?
初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析)
1. 先来看看latin1 (参考百度百科)
Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。
ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。
2. 稍微再想想字符集
是的,不用纠结太多了,如果数据库内表的字符集是latin1,那么默认情况下中文也可被支持!
· latin1覆盖了所有单字节的值,任何其他的码流都可以被看做latin1
· 把一个gbk编码的串写入latin1的表,不会有任何问题,保存的是原封不动的字节流
· 从表中读取已写入的串也不会有任何问题,且读出的字节流就和当初写入的完全一致
读取出来以后,如果在终端下,就会理解成locale类型(如果locale系gbk,当时写入的gbk中文串可正常回显)
读取出来以后,如果要写入文件,则文件编码方式即当时写入的字节流编码,如gbk写入的,读出存入文件后,文件编码也是gbk!但是如果混着写(utf-8 + gbk),那编辑器就犯蒙了,就可能会显示会有乱码。
注: 纯文本文件大多无文件头,编辑器是通过字节流自己识别编码方式和字符集的
3. 综上,建DB和访问DB时如果都采用默认的latin1,那就不仅仅支持中文,而是支持任意的编码方式!
附送几个数据库中文编码的经验教训:
1. 基于可维护的角度,虽然latin1没什么问题,但是还是尽量换成utf8或者gb系列
2. 出现乱码时:
SHOW VARIABLES LIKE 'character%'
SHOW VARIABLES LIKE 'collation_%';
a、要保证数据库中存的数据与数据库编码一致,即数据编码与character_set_database一致;
b、要保证通讯的字符集与数据库的字符集一致,即character_set_client, character_set_connection与character_set_database一致;
c、要保证SELECT的返回与程序的编码一致,即character_set_results与程序编码一致;
d、要保证程序编码与浏览器、终端编码一致
3. 要想简单一点的话,就将各个字符集都设为一致的,写入mysql的配置文件,每次用客户端都设置一下字符集(set names 'xxx'),写入和读取时要记得确保字节流的编码是ok的
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
latin mysql 中文_mysql的latin1支持中文相关推荐
- mysql latin1 中文_mysql 的 latin1 支持中文
By fireworks2@foxmail.com 初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析) 1 ...
- nginx文件服务器中文路径,nginx配置文件支持中文路径.htm
nginx配置文件支持中文路径 nginx配置文件支持中文路径 例子: server { color=#ff0000>charset utf-8; listen 8088; se ...
- mysql latin1 中文_mysql latin1 支持中文吗
匿名用户 1级 2016-04-24 回答 初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析) 1. 先来 ...
- mysql默认编码改为gbk_查看改mysql编码方式让它支持中文(gbk或者utf8)
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码改为gbk或者utf8. 1.需要以root用户身份登录才可以查看数据库编码方式(以root用户身份登录的命令为:> ...
- mysql 中文搜索插件_支持中文的MySQL 5.1+ 全文检索分词插件
经过不停的尝试和努力,以最新的 mysql 5.1.11-beta 为基础,制作的分词插件已经测试成功,现在发布如下. 由于 mysql 5.1.x 本身的架构作了修改,所以增加分词直接以插件形式方式 ...
- mysql查询中文_MySQL中like查询中文问题的解决
在做MySQL的Like查询是发现中文搜索总是不争取,从网上找到了几个解决方法,大家可以看看:方法一: 解决方法是对于包含中文的字段加上quot 在做MySQL的Like查询是发现中文搜索总是不争取, ...
- basename php 中文,php basename不支持中文怎么办
不久前遇到一段代码使用了basename,我文件名是中文的,每次返回都只有后缀.后来发现basename函数有猫腻,不支持中文文件名,但凡有以中文开头的文件名将被忽略了. 函数说明/** * 从路径中 ...
- php伪静态不支持中文,wordpress伪静态如何支持中文(目前不支持分类目录中文)...
自定义结构可以用你自己喜欢的,比如可以只用用"/%post_id%.html",这样的访问地址就会是"http://xxx.com/id.html":当然你也可 ...
- linux怎么添加中文服务器,linux不支持中文怎么办_网站服务器运行维护
linux如何实现图形界面与命令行界面的切换_网站服务器运行维护 linux实现图形界面与命令行界面的切换的方法是:执行[init 3]命令可以切换到命令行模式,执行[init 5]命令可以切换到图形 ...
最新文章
- python 解压js压缩的图片_20行Python代码,无损压缩千百张图片!Python有多强!就不用说了...
- 【Debug】— C++ 表达式必须包含类类型
- hashmap中的key是有序的么_HashMap?面试?我是谁?我在哪
- CentOS6.x下GitLab安装
- 回复邮件时如何不要邮件头_如何为阅读,点击和回复率达到100%的CEO设计一封冷邮件...
- 新浪微博被罚了,暂停更新微博热搜榜一周
- 编码规范(代码优化)
- 浅聊||高速PCB过孔设计需要注意这些问题
- x-studio教程之 - 导入csb并发布到CocosStudio2.x兼容工程
- 我看肖老师的《明日世界-云端计算下的程序设计需求》视频时,做的简单笔记
- 流程执行效果如何评估
- CC1310开发环境
- 1个钟是多久_一个时辰是多久,一个时辰是几个小时?
- 一般将来时语法课教案_【语法视频课】第1~50节资料汇总
- HDU 1107 武林 大模拟
- MATLAB 批量改文件后缀
- 平面设计中的简约设计到底指什么?
- 自定义控件---继承ViewGroup类方式(循序渐进之第2步效果----图片左右拖动+自动回弹效果)
- 【华为OJ】【099-MP3光标位置】
- xampp mysql5.6_xampp (php5.6)免费官方版下载-xampp v5.6.36 win32 X86下载 - QT软件园
热门文章
- huffman图像编码C语言,Huffman编码 数据结构 C语言
- python应用实例论文_python人人网登录应用实例
- 数学建模05 —— 模拟退火算法
- 2020考研数学一大纲之完全解析(六)
- 计算机毕设Python+Vue写字楼物业管理系统(程序+LW+部署)
- linux qt开发上位机,QT开发 ROS上位机界面
- sql 查询文本字段中值的长度最长的记录
- linux中一些隐藏的有趣的命令
- 关于GridView中控件的问题
- 开关4元、瓷砖7.8元、地板79.... 3.30日广州惊现2014最低价!