MySql修改数据库编码为UTF8

mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

  网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

  我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来

  我们可以通过命令查看数据库当前编码:

  mysql> SHOW VARIABLES LIKE 'character%';

  发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

  第一阶段:

  mysql设置编码命令

 

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;

 

  然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。

  但是,这只是一种假象

  此种方式只在当前状态下有效,当重启数据库服务后失效。

  所以如果想要不出现乱码只有修改my.ini文件,

  从my.ini下手(标签下没有的添加,有的修改)

  [client]
  default-character-set=utf8
  [mysql]
  default-character-set=utf8
  [mysqld]
  default-character-set=utf8

  以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

  然后重启mysql,执行

  mysql> SHOW VARIABLES LIKE 'character%';

  确保所有的Value项都是utf8即可。

  但是可恶的事情又来了,

  |character_set_client      | utf8                                  |
  | character_set_connection | utf8                                  |
  | character_set_database   | utf8                                  |
  | character_set_filesystem | binary                                |
  | character_set_results    | utf8                                  |
  | character_set_server     | latin1                                |
  | character_set_system     | utf8

  注意  该配置| character_set_server     | latin1 无法设置成UTF8   交互时候仍然会出现乱码。
 

 第二阶段:找到下面这东东

  X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe

  重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了。

  mysql> SHOW VARIABLES LIKE 'character%';

  +--------------------------+---------------------------------------------------------+
  | Variable_name            | Value                                                   |
  +--------------------------+---------------------------------------------------------+
  | character_set_client     | utf8                                                    |
  | character_set_connection | utf8                                                    |
  | character_set_database   | utf8                                                    |
  | character_set_filesystem | binary                                                  |
  | character_set_results    | utf8                                                    |
  | character_set_server     | utf8                                                    |
  | character_set_system     | utf8                                                    |
  | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
  +--------------------------+---------------------------------------------------------+

  8 rows in set

  另外注意事项:

  1、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。

 

CREATE TABLE `tablename4` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`varchar1` varchar(255) DEFAULT NULL,
`varbinary1` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

 

  2、网页xxx.php/jsp保存时选择utf8编码,页头最好加上

  header('conten-type:text/html;charset=utf-8');

  在执行CRUD操作前先执行一下

  mysql_query("set names utf8");

  -------------------------

  连接数据库设置编码

  jdbc:mysql://地址:3306/数据库名?characterEncoding=utf8

  -------------------------

  java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;

  对应mysql数据库中的编码utf8;gbk;gb2312;latin1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六次作业(C语言)

心得体会 该题主要涉及知识点有:1、函数的定义;2、函数的调用(即prime函数的调用);3、素数的判断;4、大小排序。 看到题时我首先想到了嵌套循环,可是仔细一看题目要求的是用prime函数的调用&…

Javascript系列——对象元素的数组去重实现

概要 这是一篇记录文,记录数组操作对象去重的实现。 需求 有这样一个数组 [{_id: 123,name: 张三 },{_id: 124,name: 李四 },{_id: 123,name: 张三 }] 实际上我们只需要 [{_id: 123,name: 张三 },{_id: 124,name: 李四 }] 去重 简单数组的去重 Array.from(new Set([…

关于__getattribute__

先看一个案例 class Tree(object):def __init__(self,name):self.namenameself.cateplantdef __getattribute__(self, item):if item大树:print(log 大树)return 我爱大树else:return object.__getattribute__(self,item)aaTree(rrrr) print(aa.name) print(aa.cate) 运行结果…

通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法

来源:互联网 作者:佚名 时间:10-16 18:41:20 【大 中 小】 错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题 Navicat for mysql 1130错误 用…

Java Language Changes for Java SE 9

Java9引入了module模块的概念,是类与接口和数据资源的一种封装,并可以声明与其他模块的依赖关系。这里总结一下Java9带来的新特性。更简练的try-with-resources语句final Resource resource1 new Resource("resource1");//a final resourceRe…

ProtocolHandler继承体系

转载于:https://www.cnblogs.com/GooPolaris/p/10815072.html

mysql数据库存储过程及调用方法

mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出。6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程、视图、触发器、job等等,而且修正了这些功能所存在的bug,其中6.0.1…

红蜻蜓

日本人なら一度は耳にしたことのある曲でしょう。忘れかけている里山の風景が目に浮かびます。このあたりは昔養蚕が盛んで、何処へ行っても桑畑があったものでしたが、最近はとんと見かけません。小さい頃、よく桑の実をつんで食べたものでした。(このあたりでは&q…

elastic学习笔记

要点 不同工具之间版本匹配很重要由点及面,先实践起来再学细节的原理和使用 技术栈 laravel5.5框架scout组件elasticsearch6.3.0搜索引擎辅助 elasticsearch-head 查看集群数据可视化 中文分词插件Ik介绍 laravel是一款现代化的php框架es是搜索引擎es-head是管理查看…

mysql 存储过程中limit

mysql 存储过程中limit 1、mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2、mysql的低版本(5.1),存储过程中的limit不能使用…

高频ES6

var promise new Promise((resolve, reject)> {if (操作成功) {resolve (value)}else{reject(error)} }) promise.than(function (value) {/*成功*/}, function(value) {/*失败*/}) Promise是异步编程的一种解决方案, 比传统的解决方案--回调函数和事件更加强大.由社区最早…

NodeJS+Express+MongoDB - 张果 - 博客园

目录 一、MongoDB 1.1、安装MongoDB 1.1.1、配置运行环境1.1.2、运行MongoDB1.2、数据库操作 1.2.1、创建数据库与查看数据库1.2.2、删除数据库1.2.3、插入数据1.2.4、查询数据1.2.5、修改1.2.6、删除二、NodeJS访问MongoDB 2.1、安装MongoDB访问驱动2.2、添加数据2.3、修改数…

一个好用的浏览器暗色浏览插件 Dark Reader

转载于:https://www.cnblogs.com/tyong/p/9973363.html

Android小测验感受

1.运行出现“...keeps stopping” 因为 前台变量“无值”而后台却进行“获取变量值” 2.switch(int,char...) case break;(不能忘) 3.转载于:https://www.cnblogs.com/tangxx1996/p/10825134.html

SpringMVC  注解式传递Ztree参数

前端页面JS处理: $("#save").click( function(){var zTree $.fn.zTree.getZTreeObj("treeDemo" );if(projectType "" || projectType null || projectType undefined){alert( "请选择项目类型!" ); return…

实验 4 [bx]和 loop 的使用

实验结论 实验1:综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个字单元重复填充字数据 0403H。 1.源代码及实验结果 运行结果:屏幕中央出现一排红色的心❤。 2.将源代码程序中字数据 0403H→修改为 0…

linux开发工具之gcc

首先gcc编译链接的一个实例如下所示: 接下来看一下gcc的常见选项: gcc的使用示例: 转载于:https://www.cnblogs.com/wsw-seu/p/10826124.html

怎么解决eclipse报PermGen space异常的问题

怎么解决eclipse报PermGen space异常的问题 最近使用eclipse做开发,使用的服务器是tomcat,但在启动时报了Caused by: java.lang.OutOfMemoryError: PermGen space的异常。 这个错误很常见,于是配置tomcat下的catalina.bat,配置e…

org.hibernate.service.ServiceRegistryBuilder被弃用

看视频教程是这样写的: //创建配置对象Configuration config new Configuration().configure();//创建服务注册对象ServiceRegistry serviceRegistry new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();//创建会话工厂对象session…

音频基本概念

音频基本概念 声音的本质 音调:频率 音量:振幅 音色:与材质有关,谐波(不规则的正玄波) 屏幕快照 2018-12-04 下午1.53.40.png采样-量化-编码 采样大小: 一个采样用多少bit存放,目前常…