`
ppju
  • 浏览: 80273 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

mysql数据库中文乱码问题

阅读更多
MYSQL数据库存在着编码问题,主要体现在数据库里汉字会出现乱码,WEB页面汉字显示不正常。
归结起来只有一个原因:会出现编码的地方存在编码不一致。
    WEB开发中:MYSQL编码主要会出现在五个地方:
        1. mysql安装的默认编码(latin1)-在mysql.ini(mysql安装根目录下)中设置。[mysqld]选项,默认没有。添加即在最后一行加入default- character-set=utf8。
       2.mysql数据库的编码,原则上默认的编码是mysql安装的默认编码,也可以在建库时用语句来执行:create databasedbname default character set utf8;我这里是建立一个utf8编码的dbname数据库。
        3.mysql数据表的编码,原则上默认是第二步建立的数据库的编码。提倡不要在creat table时加上编码
        4.利用程序建立mysql连接时,连接字符串使用的编码。如jdbc,php mysql_connect(),这个地方必须是与你页面的编码一致。
        5.WEB程序页面的编码,charset=utf8;与4必须一致。
      除上面5个地方外,另有一个不是编码者所能控制的,那就是浏览用户的浏览器的编码,一般是自动选择,就不列入了。
     
        上述五个地方,我所知道的保证不出现乱码的方法是:
    1 无所谓,但是如果可以调整的话,可以设置成你所需要统一的一个编码,如utf8
    2,3比较重要,我所理解的必须是一致。建议是在建库语句时带上编码,建表时就不指定编码了。
    4是必须的,php下:
    $link = mysql_connect('localhost', 'root', '')   or die('Could not connect: ' . mysql_error());
                                         echo 'Connected successfully';
                            mysql_select_db('wordpress') or die('Could not select database');
                              mysql_query("set names utf8;");   //这句
                  如利用PDO的话 $dbh = new PDO($dsn, $config['db']['username'], $config['db']['password']);
                                      $dbh->exec('SET CHARACTER SET utf8');  //这句
     5在WEB页面中必须设置成上面的统一的编码。
请不要结束,继续往下看:上述方法中必须统一是统一的编码,我使用的是utf8,为什么使用 utf8是我正要说的。
               备注说明
                 1、统一使用GBK编码的话,大多数时候是不会出问题。但是如果遇到·这种字符,这个字段后的所有汉字都回出现乱码。这在oracle中同样存在。因为mysql,oracle的默认编码似乎都是(mysql-latin1亦是)iso-8559-1,对某些特殊字符会出现乱码。因此建议使用 utf8。使用utf8亦是我以前排斥的,但是在hiu遇到疯狂的小覃后改变了我的观点,utf8有利于建设网站的其它版本,比如英文版...,而且设置似乎也没有丝毫麻烦。。。
                 2、在上述的一个过程中,使用了mysql的gui管理工具(除去web形式的phpadmin)的,如果你出现了乱码问题,那是显然的。比如 sqlyog, mysql 的 mysql administrator是有默认编码的。所以在建库,建表的时候尽量使用语句在工具里来执行,而不是直接右键来createdatabase。 phpadmin不存在这个问题(它是web程序)。
分享到:
评论
3 楼 ppju 2011-12-17  
cloud_ 写道
我觉得还有个相关的原因,就是当页面没有保存为UTF8格式时也会出现乱码。

我遇到的是这样的情况:
1.php:
<?php
 echo "一二三四\n"."<br>";
?>

2.php:
<?php
include("connectdb.php");
echo "五六七八";
?>

①若1.php以ANSI格式保存,浏览器打开1.php时,显示是乱码
②若2.php也以ANSI格式保存,浏览器打开2.php时,显示全是乱码,但是若加上charset=utf8则“五六七八”显示正常,“一二三四”仍是乱码

不过这和mysql本身没什么关系,以上都是在文中所说都做到的情况下测试的。(PHP Version 5.3.6)


你的数据好像没有存在数据库中,你的例子和文章没关系
2 楼 cloud_ 2011-12-05  
打错了 第二个include的应该是1.php
1 楼 cloud_ 2011-12-05  
我觉得还有个相关的原因,就是当页面没有保存为UTF8格式时也会出现乱码。

我遇到的是这样的情况:
1.php:
<?php
 echo "一二三四\n"."<br>";
?>

2.php:
<?php
include("connectdb.php");
echo "五六七八";
?>

①若1.php以ANSI格式保存,浏览器打开1.php时,显示是乱码
②若2.php也以ANSI格式保存,浏览器打开2.php时,显示全是乱码,但是若加上charset=utf8则“五六七八”显示正常,“一二三四”仍是乱码

不过这和mysql本身没什么关系,以上都是在文中所说都做到的情况下测试的。(PHP Version 5.3.6)

相关推荐

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

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

    如何解决MYSQL数据库中文乱码问题-.docx

    解决MYSQL数据库中文乱码问题 在实际的开发和应用中,MYSQL数据库中文乱码问题是一个常见的问题,这个问题的出现往往是由于数据库字符集的不正确设置所引起的。解决MYSQL数据库中文乱码问题需要从多方面入手,包括...

    MySQL数据库系统中文乱码问题及解决方案.pdf

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...

    mysql数据库中文乱码问题共2页.pdf.zip

    MySQL数据库在处理中文字符时可能会遇到乱码问题,这通常是由于字符编码设置不正确或不一致导致的。本文将深入探讨MySQL中文乱码问题的原因、表现以及解决方案。 首先,我们需要理解字符编码的基础知识。字符编码是...

    解决JSP到MySQL数据库中文乱码问题

    遇到了这个问题, 按照一定的顺序解决了, 来这里总结一下, 希望能帮助大家.  咱们从前台到后台的顺序来解决.  1. JSP  这里需要设置一下JSP页面的统一编码格式:  打开Eclipse-window-&gt;preferences. 根据...

    ubuntu mysql中中文乱码问题.docx

    在 Ubuntu 系统中,MySQL 数据库中文乱码问题是一个常见的问题。乱码问题可能是由于 MySQL 数据库的字符编码设置不正确所致。解决这个问题需要对 MySQL 数据库的字符编码进行设置和调整。 标题解释 本文档的标题...

    MySql数据库导入乱码

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

    在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法

    本文将详细介绍如何解决在DELPHI中使用MyDAC连接MySQL数据库时出现的中文乱码问题。 #### 原因分析 中文乱码问题通常由以下几个方面的原因引起: 1. **客户端与服务器端编码不一致**:DELPHI客户端与MySQL服务器...

    MySQL数据库—乱码总结

    ### MySQL数据库乱码问题解析与解决方案 #### 一、引言 在使用MySQL数据库的过程中,字符集设置不当可能会导致数据存储或查询时出现乱码问题。本文将针对MySQL数据库中的乱码现象进行深入分析,并提供相应的解决...

    乱码问题解决 完全解决MYSQL数据库的乱码问题.docx

    本文主要探讨了如何完全解决MySQL数据库的乱码问题,以及在Web应用的不同层面设置正确的字符编码。 首先,对于Web应用中的中文问题,我们需要确保每个环节的编码一致。在JSP页面中,应使用`...

    乱码问题解决 完全解决MYSQL数据库的乱码问题.pdf

    总的来说,解决MySQL数据库乱码问题的关键在于确保整个数据处理链路中,从Web应用到数据库,再到开发工具,所有环节的编码设置保持一致,尤其是与UTF-8兼容。通过上述方法,可以有效地防止和解决乱码问题,确保中文...

    Mac Mysql数据库中文乱码问题解决

    在使用Mac OS操作系统中,MySQL数据库处理中文数据时可能会出现乱码问题,这通常是由于编码设置不一致导致的。本文将详细介绍如何解决Mac Mysql数据库中的中文乱码问题。 首先,当我们在Java等编程语言中使用框架...

    解决MYSQL数据库乱码问题

    ### 解决MYSQL数据库乱码问题 #### 背景与问题描述 在使用Navicat连接MySQL数据库的过程中,用户可能会遇到一个常见的问题:乱码。这种情况通常发生在字符集设置不一致或者配置不当的情况下,尤其是在使用MySQL ...

    详解mysql数据库中文乱码问题

    MySQL 数据库中文乱码问题是一个常见的困扰,尤其是在处理中文字符时。这个问题的出现通常是由于字符集设置不一致导致的。本文将深入解析 MySQL 中文乱码的成因,并提供解决方案。 首先,我们要理解 MySQL 中涉及的...

    解决C#操作Mysql时中文乱码问题(真的解决了)

    在C#编程中,与MySQL数据库进行交互时,可能会遇到中文字符显示为乱码的问题。这个问题通常是由于编码不一致或设置不当导致的。本篇文章将深入探讨如何解决C#操作MySQL时的中文乱码问题,并提供相关的源码示例。 ...

Global site tag (gtag.js) - Google Analytics