`

mysql使用phpMyadmin时中文乱码问题

阅读更多



 最近使用phpMyadmin来关联项目,因为项目用到的是编码utf-8,在页面配置为utf8编码以及数据库字符集设置为utf8 -- UTF-8 Unicode整理为utf8_general_ci 后,执行新增操作,插入数据库的还是乱码。

百思不得其解,后来通过在网上找,终于解决了。

进入安装环境找到my.ini找到 [mysqld] 下 default-character-set 和 character-set-server 将值改为UTF8. 重启MYSQL。如果不存在,则手动加入。

下面是本人提供的图片:

在控制台可执行该操作查看编码:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+-------------------------------------+
| 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       | D:\soft\xampp\mysql\share\charsets\ |
+--------------------------+-------------------------------------+
8 rows in set

mysql> SHOW VARIABLES LIKE 'collation_%'; 
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set

 

 

 

以下关于对phpMyadmin下相关详细:

MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次:
      服务器(server),数据库(database),数据表(table)和连接(connection)。

1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.    (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把  default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。
2.查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
     mysql> SHOW VARIABLES LIKE ‘character%’;
+————————–+———————————+
| Variable_name            | Value                           |
+————————–+———————————+
| character_set_client     | latin1                          |
| character_set_connection | latin1                          |
| character_set_database   | latin1                          |
| character_set_filesystem | binary                          |
| character_set_results    | latin1                          |
| character_set_server     | latin1                          |
| character_set_system     | utf8                            |
| character_sets_dir       | D:”mysql-5.0.37″share”charsets” |
+————————–+———————————+

  mysql> SHOW VARIABLES LIKE ‘collation_%’;
+———————-+—————–+
| Variable_name        | Value           |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+———————-+—————–+

3.修改默认字符集
  (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如    default-character-set = utf8
      character_set_server =  utf8
   修改完后,重启mysql的服务,service mysql restart
   使用 mysql> SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码均已改成utf8
+————————–+———————————+
| 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       | D:”mysql-5.0.37″share”charsets” |
+————————–+———————————+

   (2) 还有一种修改字符集的方法,就是使用mysql的命令
     mysql> SET character_set_client = utf8 ;
     mysql> SET character_set_connection = utf8 ;
     mysql> SET character_set_database = utf8 ;
     mysql> SET character_set_results = utf8 ;
     mysql> SET character_set_server = utf8 ;

     mysql> SET collation_connection = utf8 ;
     mysql> SET collation_database = utf8 ;
     mysql> SET collation_server = utf8 ;

一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

SET NAMES ‘utf8′;

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

 

 

 

  • 大小: 51.1 KB
分享到:
评论

相关推荐

    关于Mysql、Php、phpMyAdmin、Zend 乱码的问题?

    关于Mysql、Php、phpMyAdmin、Zend 乱码的问题是一个常见的问题,而解决它们并不困难。只要我们了解Mysql和浏览器显示的原理,就可以轻松地避免乱码的困扰。 系统说明 在解决乱码问题之前,我们需要了解我们的系统...

    MySQL 远程访问及中文乱码问题

    总的来说,解决 MySQL 的远程访问和中文乱码问题,需要理解数据库权限、字符集原理以及开发工具的使用。通过细心的配置和测试,我们可以确保数据库系统的正常运行,同时保障数据的完整性和可读性。

    MYSQL数据库中文乱码问题.docx

    MYSQL数据库中文乱码问题是许多开发者和数据库管理员经常遇到的问题,尤其是在导入和导出数据时。下面总结了一些常见的解决方案和技巧,以供参考。 方法一:使用正确的命令 在WINDOWS系统下,使用MYSQL命令行工具...

    实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

    3. 使用mysqldump工具:文中提到使用Navicat导出时遇到中文乱码问题,之后尝试使用了MySQL自带的mysqldump工具,并通过指定`--default-character-set=gbk`选项解决了乱码问题。这表明mysqldump在处理字符集方面比...

    MySql数据库导入乱码

    在使用 PHPmyadmin 导出 MySql 数据库时,经常会遇到中文乱码的问题,这是因为数据库的字符集编码问题。中文网站使用的字符集编码一般是 gb2312、gbk、utf8 等三种,而 PHPmyadmin 的默认字符集是 latin1_swedish_ci...

    MySQL5.6中文乱码问题

    在MySQL 5.6中遇到中文乱码问题,通常是由于字符集配置不正确导致的。字符集决定了数据库如何存储和显示非英文字符,尤其是对于中文这样的多字节字符集而言,正确的配置至关重要。以下是解决MySQL 5.6中文乱码问题的...

    apache+mysql+php 乱码问题.docx

    此外,还需要注意,在使用 PHPMyAdmin 时,需要选择正确的语言和编码,以便正确地显示中文。在 MySQL 的运行信息中,可以看到 character set 的设置情况,以确保 MySQL 正确地存储和读取中文。 解决 Apache、MySQL ...

    MySql乱码问题解决方法

    MySQL数据库在处理字符集时可能出现乱码问题,这通常是由于编码设置不一致或者不正确导致的。本篇文章将深入探讨MySQL乱码问题的原因,并提供一系列详细的解决方法。 1. **问题原因** - **编码不匹配**:数据库、...

    Ubuntu15.10使用mysql 5.6.28中文乱码问题解决.docx

    在Ubuntu 15.10操作系统中安装并使用MySQL 5.6.28时,可能会遇到中文乱码的问题。这通常与字符集配置有关,影响到数据的正确存储和显示。以下是一份详细的解决方案,旨在帮助你解决这个问题。 首先,我们需要检查...

    mysql乱码解决方法

    在使用MySQL数据库与PHP配合开发网站时,有时会遇到乱码问题,这通常是由于字符集设置不一致导致的。以下是一些常用的解决方法: 1. **配置数据库环境**: - 在使用工具如ZendStudio或phpMyAdmin管理MySQL时,确保...

    解决phpmyadmin中文乱码问题。。。

    PHPMyAdmin是最流行的MySQL数据库管理工具,但是许多用户在使用时遇到中文乱码问题,这个问题让用户感到非常头疼。今天我们将讨论解决phpMyAdmin中文乱码问题的方法。 问题分析 phpMyAdmin中文乱码问题的原因是...

    Mysql 中文乱码 最简单的解决办法

    在MySQL数据库中遇到中文乱码问题,这通常是由于字符集设置不正确导致的。这个问题的解决方案涉及多个层面,包括MySQL服务器配置、数据库、表以及字段的字符集设定。以下是最简单且有效的解决方法: 首先,我们需要...

    解决mysql乱码问题全解决

    ### 解决MySQL乱码问题全解析 #### 一、引言 在数据库操作过程中,遇到乱码问题是较为常见的现象之一,尤其是对于频繁更换虚拟主机环境的用户来说,由于不同的服务提供商可能采用不同的MySQL版本,这很容易导致数据...

    MySQl处理乱码

    MySQL是世界上最流行的开源关系型数据库管理系统之一,但在处理数据时,有时可能会遇到字符编码问题,导致乱码。本文将深入探讨MySQL处理乱码的相关知识点,包括字符集的概念、乱码产生的原因、解决方法以及如何避免...

    MySQL5.6中文乱码问题.pdf

    在MySQL 5.6中,中文乱码问题是一个常见的困扰,尤其对于那些处理大量中文数据的应用来说。这个问题的出现通常是由于数据库的字符编码设置不正确,导致中文字符无法正确存储和显示。以下将详细解释这个问题的原因及...

    小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法第1/3页

    本文将深入探讨MySQL中文乱码、phpMyAdmin乱码以及PHP显示乱码的原因,并提供相应的解决方法。 MySQL自版本4.1开始引入了对多国语言的支持,这使得它能够处理多种字符集。字符集决定了数据如何被存储和解析,而不同...

    phpMyAdmin2.6以上版本数据乱码问题

    在使用phpMyAdmin 2.6及以上版本管理数据库时,可能会遇到中文数据出现乱码的情况。这一问题主要出现在通过phpMyAdmin界面进行数据查询时,尽管在PHP应用程序中调用相同的数据时不会出现问题。本文将详细介绍导致此...

Global site tag (gtag.js) - Google Analytics