返回顶部
首页 > 资讯 > 数据库 >彻底解决MySQL使用中文乱码的方法
  • 152
分享到

彻底解决MySQL使用中文乱码的方法

2024-04-02 19:04:59 152人浏览 安东尼
摘要

目录1、中文乱码1.1、中文乱码1.2、查看表字符编码1.3、数据库与操作系统编码2、Mysql设置变量的范围2.1、session范围2.2、global范围2.3、设置数据全局范

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

1、中文乱码

1.1、中文乱码

 create table user(name varchar(11));    # 创建user表
 insert into table user("carl");         # 添加数据
 select * from user;

insert into user value("哈哈");

无法插入中文字符:

1.2、查看表字符编码

mysql> show create table user \G;
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `name` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

我们可以看到表的默认字符集是latin1.

所以我们在创建表的时候就需要指定表的字符集:

 create table user(name varchar(11)) default charset=utf8; 

这样在linux里面可以访问并且可以插入与访问这个表了。

1.3、数据库与操作系统编码

虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。

而且数据库的编码也存在问题。

这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。

2、mysql设置变量的范围

2.1、session范围

查看数据库编码:

show variables like '%char%';

修改字符编码:

set character_set_server=utf8;
set character_set_database=utf8;
show variables like '%char%';

我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

2.2、global范围

mysql设置变量的范围默认是session范围。如果设置多个会话的字符集那么需要设置global范围:Set [global|session] variables …

set global character_set_database=utf8;
set global character_set_server=utf8;
show variables like '%char%';

当我们跨会话查看mysql字符集都会看到都是utf8。如果你以为万事大吉了的话,那么你就大错特错了。

2.3、设置数据全局范围

当我们数据库重启的时候,你们发现设置global范围的值又变成latin1了。

service mysqld restart
mysql -uroot -pyourpassWord
show variables like '%char%';

不要怕,下面就教你终极大招:

修改mysql配置文件/etc/my.cnf。

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

请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:

OK。这下如果你重启mysql服务也会发现它的字符集是utf8.

drop database test;
create database test;
use test;
create table user(name varchar(11));
show create table user \G;

而且我们创建表的时候不需要指定字符编码,它默认就是utf8;

3、总结

我看网上很多答案都是直接在session级别设置mysql的字符编码,这是治标不治本的方法。我们还是要从源头上解决这个问题。那就是修改mysql默认的配置文件,把它的字符集修改成能够使用中文字符的UTF8就OK了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: 彻底解决MySQL使用中文乱码的方法

本文链接: https://lsjlt.com/news/163287.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 彻底解决MySQL使用中文乱码的方法
    目录1、中文乱码1.1、中文乱码1.2、查看表字符编码1.3、数据库与操作系统编码2、mysql设置变量的范围2.1、session范围2.2、global范围2.3、设置数据全局范...
    99+
    2024-04-02
  • Linux下彻底解决mysql中文乱码
    文章目录 Linux下彻底解决mysql中文乱码1.修改 MySQL 服务器的字符集为 UTF-8,可以在 my.cnf 配置文件中添加以下内容:2.使用时修改 MySQL 数据库和表的字符集...
    99+
    2023-09-06
    mysql 数据库 php
  • 彻底解决IDEA输出中文乱码问题
    本文一共有3种方法,针对的情况是输出中文乱码问题 问题描述 无法正确输出中文字符:(请正确分辨自己是哪一种乱码问题!) 解决方法 1、最容易想到 File -> Settings -> File Encodings下设置编码格式为UTF-...
    99+
    2023-08-30
    intellij-idea tomcat java
  • mysql csv中文乱码的解决方法
    这篇文章给大家分享的是有关mysql csv中文乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql csv中文乱码的解决办法:首先鼠标右键点击选中的csv文件...
    99+
    2024-04-02
  • mysql表中文乱码的解决方法
    这篇文章给大家分享的是有关mysql表中文乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。我们可以先看看自己的mysql数据库,中文是否乱码。登录数据库,再带的tes...
    99+
    2024-04-02
  • MFC Java 使用socket 中文乱码解决方法
    在 MFC 中使用 Java 的 Socket 进行通信时,中文乱码问题可能出现在两个方面:发送端和接收端。下面给出解决方法:发送端...
    99+
    2023-10-12
    MFC
  • AJAX中文乱码的解决方法
    本篇内容主要讲解“AJAX中文乱码的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AJAX中文乱码的解决方法”吧! AJAX...
    99+
    2024-04-02
  • css中文乱码的解决方法
    小编给大家分享一下css中文乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css的基本语法是什么css的基本语法是:1、css规则由选择器和一条或多...
    99+
    2023-06-14
  • JFreeChart中文乱码的解决方法
    今天就跟大家聊聊有关JFreeChart中文乱码的解决方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。由于JFreeChart组件的版本、操作平台、JDK的设置等因素,在使用JFr...
    99+
    2023-06-17
  • html5中文乱码的解决方法
    小编给大家分享一下html5中文乱码的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!解决方法:1、在软件中打开html文件,选择页面顶部的“修改”-“页面属性”,在新窗口中选择“标题/编码”,选择指定编码,点击“应...
    99+
    2023-06-15
  • JSP中文乱码的解决方法
    本篇内容主要讲解“JSP中文乱码的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JSP中文乱码的解决方法”吧!对于中文处理的常见对策,在网上经常可见的主要是下面2种: <%@ page ...
    99+
    2023-06-03
  • java中解决中文乱码的方法
    java中解决中文乱码的方法:POST请求中文乱码处理(在获得参数值之前设置)req.setCharacterEncoding("UTF-8");GET请求处理中文乱码 //String username = req.getParamete...
    99+
    2019-04-07
    java 乱码
  • win8无法关机彻底解决方法(图文)
    今天小编Window 8 系统下点击“关机”之后,过一会儿发现电脑并没有真的被关掉。如何才能解决 Window 8 系统下无法彻底关机的问题呢,其实很简单,往下看,只需5步: 计算机...
    99+
    2022-06-04
    解决方法 图文
  • oracle中文乱码解决方法
    oracle 中文乱码通常由字符集错误引起。解决步骤如下:检查数据库字符集,应为 utf8。修改字符集为 utf8。检查客户端字符集,应与数据库一致。验证字符集已更改。重新加载数据,指定...
    99+
    2024-05-11
    oracle
  • html文件中文乱码的解决方法
    这篇文章将为大家详细讲解有关html文件中文乱码的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.通过这些标签可以将...
    99+
    2023-06-14
  • javascript中文url乱码的解决方法
    本篇内容介绍了“javascript中文url乱码的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • iis7 php中文乱码的解决方法
    这篇文章给大家分享的是有关iis7 php中文乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。iis7 php中文乱码的解决办法:首先打开相应的PHP文件;然后在文件的开头写上“header('...
    99+
    2023-06-14
  • php explode中文乱码的解决方法
    小编给大家分享一下php explode中文乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!解决方法:1、在php.ini配置文件中,查找并设置“de...
    99+
    2023-06-15
  • git status中文乱码的解决方法
    这篇文章给大家分享的是有关git status中文乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。git status中文乱码的解决办法:1、查看当前工作区状态;2、配置“core.quotepath...
    99+
    2023-06-21
  • php rename中文乱码的解决方法
    这篇文章主要介绍php rename中文乱码的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php rename中文乱码的解决办法:首先打开相应的PHP代码文件;然后通过“iconv("G...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作