`
thinkerAndThinker
  • 浏览: 282488 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    MySql修改数据库编码为UTF8避免造成乱码问题

    我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 我们可以通过命令查看数据库当前...

    如何更改MySQL数据库的编码为utf8mb4

    MySQL数据库的编码转换至utf8mb4是为了更好地支持Unicode字符集,尤其是对于包含四字节表情符号和其他特殊字符的数据。utf8mb4是utf8的扩展,它不仅完全兼容utf8,还能处理更多的Unicode字符范围,包括现代社交媒体...

    更改MySQL数据库的编码为utf8mb4_wo.pdf

    MySQL 数据库编码修改为 utf8mb4 在 MySQL 数据库中,默认的编码方式为 utf8,但是 utf8 编码只支持最多 3 字节的数据,而 emoji 表情字符是 4 字节的字符。如果直接往采用 utf-8 编码的数据库中插入表情数据,Java...

    Unity3D教程:修改mysql字符编码成为UTF82

    本教程将介绍如何解决Unity3D中与MySQL数据库连接时的字符编码问题,确保数据能够正确地以UTF-8格式存储和读取。 首先,我们遇到的问题是即使设置表的默认字符集为UTF8,并且在发送查询时使用UTF-8编码,仍然会出现...

    Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)

    MySQL数据库编码问题涉及到字符集的选择、配置以及数据的迁移和处理。字符集是决定数据库中存储和检索文本数据的方式,对于多语言支持和数据迁移至关重要。UTF-8是一种广泛使用的多字节字符编码,支持全球大部分语言...

    不乱码批量修改mysql数据库、表、字段编码(gbk到utf8php脚本)

    批量修改mysql数据库、表、字段编码(gbk到utf8php脚本) 可以把整个数据库、表、字段编码全部从gbk_chinese_ci 到 utf8_general_ci 转换,不会乱码哦 狂拽吊炸天!!!

    Mysql支持emoji 表情符号 升级编码为UTF8MB4

    在使用Mysql数据库时,如果需要支持emoji表情符号,需要对数据库的编码进行升级,以便正确地存储和显示emoji表情符号。下面是升级Mysql编码为UTF8MB4的步骤和注意事项: 为什么需要升级编码 在早期的Mysql版本中,...

    MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci

    为了设置服务器默认的字符集为`utf8mb4`,你需要修改MySQL的配置文件`my.cnf`。对于MySQL 5.7,你可以在`[mysqld]`部分添加以下内容: ```ini init_connect='SET collation_connection = utf8mb4_unicode_ci' init_...

    mysql插入数据库编码解决

    在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...

    教程:修改mysql字符编码成为UTF8.docx

    MySQL 字符编码修改为 UTF8 的教程 MySQL 数据库的字符编码问题一直是...修改 MySQL 字符编码为 UTF8 可以解决数据乱码、无法读取等问题,提高数据库的可读性和可维护性。同时,也可以避免 connection 连接层的问题。

    全面了解mysql中utf8和utf8mb4的区别

    UTF8MB4是MySQL从5.5.3版本开始引入的扩展,MB4代表“most bytes 4”,意为最多4字节的编码。UTF8MB4旨在解决UTF8无法存储4字节Unicode字符的问题,因此它可以存储Unicode的所有17个平面,总计超过100万个字符。 二...

    Linux mysql utf8

    最后,我们需要添加 `init_connect='SET NAMES utf8'` 行,以设置连接 MySQL 数据库时使用 UTF8 编码。 重启 MySQL 修改好 `my.cnf` 文件后,我们需要重新启动 MySQL,以使修改生效。 查看修改结果 重新启动 ...

    flowable相关数据库表mysql, 包含两种字符集utf8 和 utf8bm4

    springboot在集成flowable时,添加flowable依赖,配置完成数据库连接,项目第一次启动会初始化数据库flowable相应的表,默认会加载的字符集为utf8(CHARSET=utf8 COLLATE utf8_bin),在mysql8后,在创建数据库时,...

    基于PHP的MYSQL数据库管理工具UTF8 hc.zip

    【标题】"基于PHP的MYSQL数据库管理工具UTF8 hc.zip" 涉及的主要知识点是使用PHP语言开发的MySQL数据库管理工具,且该工具支持UTF8编码,这在多语言环境下的数据处理中尤为重要。 首先,PHP...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    在安装完成后,学生需要修改配置文件以设置默认编码为 utf8。配置文件位于 C:\ProgramData\MySQL\MySQL Server 8.0 目录下,需要找到 my.ini 文件,并修改 default-character-set 和 character-set-server 的值为 ...

    Access数据库中UTF-8转GB2312的方法

    本文主要介绍如何将UTF-8编码的Access数据库转换为GB2312编码的数据库。文章提供了两种方法:第一种是通过ASP脚本实现;第二种是借助MySQL数据库作为中间媒介来进行转换。 #### 所需工具与环境 1. **Windows操作...

    mysql数据库设置utf-8编码的方法步骤

    修改/etc/my.cnf或者/etc/mysql/my.cnf文件 [client] default-character-set = utf8 [mysqld] default-storage-engine = INNODB ...创建新数据库时使用UTF-8编码 create database 'test' default character set u

Global site tag (gtag.js) - Google Analytics