突然想起前一阵子,在做javaweb后端debug的时候遇到的这个问题.由于在Dao层测试的时候没有尝试过中文的测试例,所以在Service写好后一直不报错但是无法插入数据库. 找了好久才发现是Mysql表的varchar的字符集和排序规则有问题,在此记录.…
库的字符集影响表和字段的字符集 数据库字符集 >表的字符集 > 字段的字符集 (从前往后优先级由低到高,从左往右继承,如果表没设置字符集,继承数据库的,如果字段没设置,继承表的) 数据库的字符集如果是utf8,表和字段的字符集继承 字段的字符集和排序规则继承自表,例如表的字符集为latin1,那表的字段(字符型)都是latin1 修改表的字符集对新增加字段有用,但是老字段字符集不变,应再编写脚本修改老数据的字符集 show variableslike "%char%" ;显…
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary { display: block } audio,canvas,progress,video { display: inline-block; vertical-align: baseline } audio:not([co…
今天接到一个任务是需要把数据库的字符编码全部修改一下,写了以下修正用的SQL,修正顺序是   表字段 > 表 > 数据库. 表字段修复: #改变字段数据 SELECT TABLE_SCHEMA '数据库',TABLE_NAME '表',COLUMN_NAME '字段',CHARACTER_SET_NAME '原字符集',COLLATION_NAME '原排序规则',CONCAT('ALTER TABLE ', TABLE_SCHEMA,'.',TABLE_NAME, ' MODIFY COLU…
MySQL修改表中字段的字符集 ALTER TABLE 表名 MODIFY 字段名 要修改的属性: 例:ALTER TABLE `guaduates` MODIFY `studentno` CHAR(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL; 扩展:修改表的字符集 ALTER TABLE 表名 要修改的属性: ALTER TABLE `guaduates` CHARSET=utf8;…
在MySQL中,可以使用以下两种方式指定字符集和排序规则: 创建数据库或表时指定字符集和排序规则 在创建数据库或表时,可以使用 CHARACTER SET 和 COLLATE 选项指定字符集和排序规则.例如,创建一个名为 mydatabase 的数据库,并将字符集设置为 utf8mb4,排序规则设置为 utf8mb4_general_ci,可以使用以下 SQL 语句: CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4…
文章转自 http://blog.csdn.net/smallSBoy/article/details/52997138 数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). (注意:Collation原意为校对,校勘,但是根据实际使用场景,觉得还是翻译为排序规则比较合适) 在绝大部分情形中,使用何种字符集和排序规则决定于服务器,数据库和表的级别,一般SQL操作不必关心这些. 以下操作均以MySQL为例. .关于字…
MySQL数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列. 最初,服务器字符集和排序规则取决于启动mysqld时使用的选项.可以使用 --character-set-server该字符集.同样可以添加 --collation-server用于排序规则.这些可以在服务器启动时在命令行或选项文件中进行设置,并可以在运行时进行更改. 一般开发我们要求MySQL数据库存放中文数据,所以在MySQL配置文件里面一般会指定字符集和排序规则. 我们可以执行SHOW CHARACTER SE…
1.关于字符集和排序规则所为字符集,就是用来定义字符在数据库中的编码的集合.常见的字符集有:utf8(支持中文)和AccIS(不支持中文) 数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规则.常见的如下: (1) utf8_general_ci 不区分大小写,utf8_general_cs 区分大小写 (2) utf8_bin 规定每个字符串用二进制编码存储,区分大小写,可以直接存储二进制的内容 说明:所为排序规则,就是指字符比较时是否区分大小写,以及是按照字符编码进行比较还是直接用…
在一次导入数据表(MYISAM)的经历:复制过来的表打开后中文出现乱码,肯定是字符集出现了不致的问题,所以从原数据库导出.sql文件,修改其中的创建表的语句,加入字符集DEFAULT CHARSET=gb2312 用这个导入 mysql -uroot -p --default-character-set=gb2312 databasename>E:\orderlist.sql 导入后字符都正常. 修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER…