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命令专门查看...

保证几个方面:

  1. mysql的server db table 的字符集应该一致,且与中文兼容(能显示中文,如gbk,gb2312,utf8, big5等等);
  2. 连接字符集同1, 包括: character_set_client = character_set_connection = charater_set_results = 兼容中文字符集之一; 可以用一个命令来解决:  set names 'gbk/utf8/gb2312等', ===== set charset-names ...
  3. 表中的字段的 collation要设为 兼容中文之一, 且与1,2 相同.

    当修改了 mysql服务器的1,2,后, 要重启mysqld 服务!!

如果这个还不行, 就考虑 编辑器的 编码字符集也同上1.

具体到上面的操作就是:

  1. insert命令后面要加上 into 关键字才行;
  2. 要设置服务器和数据库的字符集的命令是: set character_set_server='utf8' , 注意utf和8之间没有横线;set character_set_database='utf8'等等, 其他类似的变量都是同样的设置。 但是这个设置好像只能生效一次, 要长期生效?????????????、

  3. 创建时,要设置表的字符集, 命令是 default charset=utf8 , 这里注意是charset, 是character set两个单词的缩写, 不是两个 单词分开写的!
  4. mysql中 查看字符集和collation的命令是:

    show charater set; show collation, 但是你要注意, 这个是系统提供的、在系统中有的, 可以设置的字符集和校验, 但并不是当前server-db-table设置的字符集。

    要查看当前机器上的数据库字符集, 要使用 show variables;

    但是, show variables查看的是所有的 当前数据库系统正在运行的 变量包括字符集的设置, 所以,要查看其中某一些某一类的变量, 用like 来过滤, 如show variables like 'char%'...

  5. mysql的主配置命令, 是 etc下的 my.cnf, 注意是cnf, 不是config, 辅助配置文件目录是: /etc/my.cnf.d, 而他的数据等实体放在: /var/share/mysql中, 里面有很多的内容和东西...

mysql中文乱码解决方法的更多相关文章

  1. php mysql 中文乱码解决方法

    本文章向码农们介绍php mysql 中文乱码解决方法,对码农们非常实用,需要的码农可以参考一下. 从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行 解 ...

  2. 可遇不可求的Question之导入mysql中文乱码解决方法篇

    可遇不可求的Question之导入mysql中文乱码解决方法篇 先 set names utf8;然后 source c:\1.sql ?

  3. mysql 中文乱码解决方法

    最近在.NET 项目中用EF连接mysql,插入中文数据时老是显示乱码,在创建表时都已将编码指定了,但是还是出现乱码,折腾了一阵子才发现在连接字符串里面也要加上指定编码 Character Set=u ...

  4. 转载-MAC Mysql中文乱码解决方法

    相关链接: http://www.siguoya.name/pc/home/article/235 如有,有问题可以留言.

  5. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  6. Delphi+MySQL:TADOQuery使用插入中文乱码解决方法

    Delphi+MySQL:TADOQuery使用插入中文乱码解决方法 with adoquery dobeginclose;sql.clear;sql.text:=' insert into test ...

  7. MySql数据库乱码解决方法

    MySql数据库乱码解决方法 解决乱码问题一个原则:存取系统使用一致的编码规则. 多使用mysql的原生命令行,这样才能做更多的事情. ​ 第一步: 确认应用系统需要使用的编码 java的默认编码是跟 ...

  8. jquery的ajax()函数传值中文乱码解决方法介绍

    jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({ dataType : ‘json', type : ‘POST', url : ‘http: ...

  9. Zxing中文乱码解决方法

    Zxing中文乱码解决方法总结 尝试过非常多方法  最后发现此方法解决的乱码最多....... 在百度搜索二维码图片 经过前2页的測试  除开一张图之外  其余都能扫描出结果 假设大家有更好的解决方法 ...

随机推荐

  1. Ubuntu下的生活--安装

    概要 整个安装过程是通过离线包安装,而非在线安装. 目录 JDK安装与配置 Eclipse安装与配置 Apache安装与配置 MySQL的安装 JDK安装与配置 版本:jdk-7u71-linux-i ...

  2. 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)

    最新的效果见 :http://video.sina.com.cn/v/b/124538950-1254492273.html 可处理视频的示例:视频去雾效果 在图像去雾这个领域,几乎没有人不知道< ...

  3. Leetcode: plus one

    June 22, 2015 Given a number represented as an array of digits, plus one to the number. Leetcode: pl ...

  4. 基于网格的分割线优化算法(Level Set)

    本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...

  5. C++11 新特性: unordered_map 与 map 的对比

    unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value.不同的是unordered_map不会根据key的大小进行排序, 存储时是根据key的ha ...

  6. 观察者模式(Observer和Observable实现)

    package com.wzy.java8.thread; import java.util.Observable; import java.util.Observer; public class D ...

  7. 原生态ajax

    用户名是否被注册过? 创建出注册信息: <h1>注册信息</h1> <input type="text" name="txtName&quo ...

  8. jquery的show/hide/toggle详解

    通过阅读源码我们发现show,hide,toggle调用了showHide和isHidden这2个方法,所以我们要搞明白原理必须先看一下这2个方法. jQuery.fn.extend({ ...... ...

  9. bench.sh 跑分测速

    #!/bin/bash #==============================================================# # Description: bench te ...

  10. mysql的sql_mode模式

    在oracle或sqlserver中,如果某个表的字段设置成not null,insert或update时不给这个字段赋值,比如下面这样: 表t_test(id,name)中id,name都不允许为空 ...