mysql中文乱码解决方法
latin1(1和l的区别,l要么没有缺缺,要么缺缺是向左的直的; 1向左的缺缺是弯曲的,应该是可以看得出来的)是8位的字符集,表示英文和西欧字母.
瑞士: Switzerland [swits2land], 瑞士人(的): Swiss.
Swedish: 瑞典的.
collate: collation: 整理,校对; 排序规则
MySQL默认的校对规则是 :latin_swedish_ci, 为什么是瑞典的呢? 因为他的创始人 Monty 就是瑞典的。
mysql中查询等sql语句中的 通配符是 %. 在查询语句中可以使用 like 'latin1%'
mysql中show...的内容很多, 可以查看很多内容:
show character set;
show collation like 'latin1%';
character: 字符集, collation: 整理规则, 字符集中字符的"比较规则","排序规则"
latin类字符集,相当于latin语系,包括四种latin1, latin2, 5, 7四种字符集, 相当于东方语系包括中文, 日文, 韩文等字符集
字符集并不完全等同于整理规则, 仔细想想差别还是挺明显的. 而且同一个字符集可能有多个排序规则,如latin1 -> latin1_swedish_ci, latin_spanish_ci,...
因为一般很少指定collation,所以要指定一个 default collation.
ci: case insensitive 大小写不敏感
cs: case sensitive 大小写敏感
从 整理规则 可以知道 排序和比较的情况: 如utf8_general_ci: 表示字符集是utf8, 比较规则是general, ci是大小写不敏感,所以注册用户名和邮件地址时要使用, 如
A和a, mysql认为是相同的. 而utf8_bin: 表示字符集是utf8, 而比较排序时,按二进制存储和排序比较,则a和A是不同的. 也可以知道, 并不是所有的"整理"规则 都要
使用 ci.
show create table tablename; mysql显示 "数据表" 的 默认的字符集是latin1(注意不是utf8): ...default charset=latin1
show full columns from tablename; 可以查看各个字段的 整理规则;
最完整的现实字符集的命令是: status; 可以显示 默认的 windows平台下的 "服务器的字符集: latin1, db 字符集: latin1, connect字符集: gbk, client字符
集:gbk. "
也就是说, 从服务器,到数据库, 到表 都可以指定 "字符集", 而字段却不能指定字符集, 只能指定 "整理规则", (这个整理规则中就 可以认为 包含了 字段的字符集,
以及比较/排序 规则). 即使前3个层次的字符集默认的 都是 latin1, 但是 如果 字段的 "整理"为 gbk_chinese_ci的话, 也能正常显示中文.
mysql的版本是5.5.8-log, 其中的log表示开启了binlog功能, 有日志记录和日志管理功能.
5.0以后的mysql版本,采用bin二进制的日志格式. show master logs; 命令可以查看当前有哪些日志文件; set sql_log_bin=0/1; 用来关闭/打开日志功能;
mysqlbinlog 日志文件...; 显示查看日志.
日志文件: mysql-bin.index是日志文件 的清单; mysql-bin.000001, 是二进制文件,要用mydqlbinlog命令专门查看...
保证几个方面:
- mysql的server db table 的字符集应该一致,且与中文兼容(能显示中文,如gbk,gb2312,utf8, big5等等);
- 连接字符集同1, 包括: character_set_client = character_set_connection = charater_set_results = 兼容中文字符集之一; 可以用一个命令来解决: set names 'gbk/utf8/gb2312等', ===== set charset-names ...
- 表中的字段的 collation要设为 兼容中文之一, 且与1,2 相同.
当修改了 mysql服务器的1,2,后, 要重启mysqld 服务!!
如果这个还不行, 就考虑 编辑器的 编码字符集也同上1.
具体到上面的操作就是:
- insert命令后面要加上 into 关键字才行;
要设置服务器和数据库的字符集的命令是: set character_set_server='utf8' , 注意utf和8之间没有横线;set character_set_database='utf8'等等, 其他类似的变量都是同样的设置。 但是这个设置好像只能生效一次, 要长期生效?????????????、
- 创建时,要设置表的字符集, 命令是 default charset=utf8 , 这里注意是charset, 是character set两个单词的缩写, 不是两个 单词分开写的!
mysql中 查看字符集和collation的命令是:
show charater set; show collation, 但是你要注意, 这个是系统提供的、在系统中有的, 可以设置的字符集和校验, 但并不是当前server-db-table设置的字符集。
要查看当前机器上的数据库字符集, 要使用 show variables;
但是, show variables查看的是所有的 当前数据库系统正在运行的 变量包括字符集的设置, 所以,要查看其中某一些某一类的变量, 用like 来过滤, 如show variables like 'char%'...mysql的主配置命令, 是 etc下的 my.cnf, 注意是cnf, 不是config, 辅助配置文件目录是: /etc/my.cnf.d, 而他的数据等实体放在: /var/share/mysql中, 里面有很多的内容和东西...
mysql中文乱码解决方法的更多相关文章
- php mysql 中文乱码解决方法
本文章向码农们介绍php mysql 中文乱码解决方法,对码农们非常实用,需要的码农可以参考一下. 从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行 解 ...
- 可遇不可求的Question之导入mysql中文乱码解决方法篇
可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?
- mysql 中文乱码解决方法
最近在.NET 项目中用EF连接mysql,插入中文数据时老是显示乱码,在创建表时都已将编码指定了,但是还是出现乱码,折腾了一阵子才发现在连接字符串里面也要加上指定编码 Character Set=u ...
- 转载-MAC Mysql中文乱码解决方法
相关链接: http://www.siguoya.name/pc/home/article/235 如有,有问题可以留言.
- [转]mysql导入导出数据中文乱码解决方法小结
本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...
- Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
Delphi+MySQL:TADOQuery使用插入中文乱码解决方法 with adoquery dobeginclose;sql.clear;sql.text:=' insert into test ...
- MySql数据库乱码解决方法
MySql数据库乱码解决方法 解决乱码问题一个原则:存取系统使用一致的编码规则. 多使用mysql的原生命令行,这样才能做更多的事情. 第一步: 确认应用系统需要使用的编码 java的默认编码是跟 ...
- jquery的ajax()函数传值中文乱码解决方法介绍
jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({ dataType : ‘json', type : ‘POST', url : ‘http: ...
- Zxing中文乱码解决方法
Zxing中文乱码解决方法总结 尝试过非常多方法 最后发现此方法解决的乱码最多....... 在百度搜索二维码图片 经过前2页的測试 除开一张图之外 其余都能扫描出结果 假设大家有更好的解决方法 ...
随机推荐
- Ubuntu下的生活--安装
概要 整个安装过程是通过离线包安装,而非在线安装. 目录 JDK安装与配置 Eclipse安装与配置 Apache安装与配置 MySQL的安装 JDK安装与配置 版本:jdk-7u71-linux-i ...
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)
最新的效果见 :http://video.sina.com.cn/v/b/124538950-1254492273.html 可处理视频的示例:视频去雾效果 在图像去雾这个领域,几乎没有人不知道< ...
- Leetcode: plus one
June 22, 2015 Given a number represented as an array of digits, plus one to the number. Leetcode: pl ...
- 基于网格的分割线优化算法(Level Set)
本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...
- C++11 新特性: unordered_map 与 map 的对比
unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value.不同的是unordered_map不会根据key的大小进行排序, 存储时是根据key的ha ...
- 观察者模式(Observer和Observable实现)
package com.wzy.java8.thread; import java.util.Observable; import java.util.Observer; public class D ...
- 原生态ajax
用户名是否被注册过? 创建出注册信息: <h1>注册信息</h1> <input type="text" name="txtName&quo ...
- jquery的show/hide/toggle详解
通过阅读源码我们发现show,hide,toggle调用了showHide和isHidden这2个方法,所以我们要搞明白原理必须先看一下这2个方法. jQuery.fn.extend({ ...... ...
- bench.sh 跑分测速
#!/bin/bash #==============================================================# # Description: bench te ...
- mysql的sql_mode模式
在oracle或sqlserver中,如果某个表的字段设置成not null,insert或update时不给这个字段赋值,比如下面这样: 表t_test(id,name)中id,name都不允许为空 ...