mysql数据库修改字符编码问题
遇到这种情况,现有项目的数据库已经建好,数据表也已经创建完成。 问题来的,数据库不能插入中文,调试时候发现中文数据从发送请求到最后请求处理完成这些步骤,中文还没有发生乱码。 只有在存储到数据库后查询数据并显示才会乱码。 那么到此可以确定是mysql出现问题了。 那么应该怎么办呢?哈哈,当然是看我们的度娘啦! 看的下度娘解决方法是: 将数据库的编码修改为utf8编码格式,因为安装mysql默认使用的字符编码latin1 what?这个编码是什么鬼,见都没见过。 查了下,Latin1是 ISO-8859-1 的别名。因为ISO-8859-1编码范围使用了单 字节 内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的 字节流 都不会被抛弃 这个latin1编码是单字节编码,而一般汉字是需要两个字节存储,所以这个编码格式不支持汉字。 接下来就看怎么改吧 数据库字符优先级有:系统级、数据库级、表级、字段。这5个优先级中字段优先级最高。举个列子。我们要向表中存储中文数据。如果表的字符编码是utf8,而字段的字符编码是latin1。那么如果我们存储中文还是会出现乱码,因为使用的编码是字段的字符编码latin1 在数据库创建时如果不设置数据库的默认字符编码,即缺省时会使用系统的字符编码latin1。创建表缺省时使用数据库的字符编码,字段同理。 从上面可以得出一个重要结论