`
liyf155
  • 浏览: 127749 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mysql乱码终极解决方案

阅读更多

        最近在Linux自带的Mysql数据库中执行了一个sql文件,在数据库中查询没有任何问题,可以看到中文数据,但是在JSP页面中显示时却出现了乱码,在spring的配置数据库的连接URL中,指定了编码“characterEncoding=UTF-8”,而且浏览器也是UTF-8的编码,为什么就会是乱码呢。最后得出结论,原来是Linux自带的数据库并不是UTF-8的编码,整理后,得到以下几种解决方案:

 


第一解决方法:

乱码问题简单说就是数据库写入读取,网页文件,网页显示时几个环节的编码不一致造成的。

乱码问题
写入时:页面提取写入数据编码和写入数据库时编码不一致
读取时:读取后所用编码与数据库写入时不一致
显示时:编码与数据库读取后的数据不一致

很显然只有三者都统一才行:(以utf-8为例)
1:页面提交数据编码utf-8(这也可以算是显示页面编码),
2:数据库写入时编码:alter database db default character set ‘utf8’collate ‘utf8-general-ci’,
3:数据库读取时所用编码:mysql_query(“set names ‘utf8’”);
4:显示页面编码:<meta http-equiv="Content-type"content=“text/html, charset=utf-8”>

 
第二解决方法:

进入MYSQL命令行:
mysql> alter database you_dbname default character set 'utf8';

mysql> SET character_set_client='utf8';
mysql> SET character_set_connection='utf8'
mysql> SET character_set_results='utf8'


第三解决方法:

(暂时只针对MySQL 5.0.16 乱码问题处理办法,其他版本未测试。)
1 设置phpMyAdmin

  Language:Chinese simplified (zh-utf-8)

  MySQL 字符集:UTF-8 Unicode (utf8)

  MySQL 连接校对:gbk_chinese_ci

2 创建数据库时

  整理设置成 gbk_chinese_ci

3 用SQL建立表中

  ENGINE=MyISAM DEFAULT CHARSET=gbk;
  ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;

4 检查表结构中

  varchar(100) 的整理属性为gbk_chinese_ci
  其它类型的整理属性为空

5 代码中加上

  $db->query("SET CHARACTER SET GBK");  Linux下需要,Windows下不需要
  这个相当于Connection Character Sets and Collations

分享到:
评论

相关推荐

    java中文乱码终极解决方案

    本文将深入探讨Java中解决中文乱码的终极策略,帮助开发者彻底摆脱这个困扰。 首先,我们要理解Java中的字符编码体系。Java采用Unicode作为其内部编码,这使得它能够处理世界上几乎所有的字符集。然而,当与外部...

    Java Web开发(JSP、Servlet)乱码终极解决方案.txt

    本篇将详细解析如何在Java Web项目中彻底解决乱码问题,确保数据在各个环节都能正确地显示和处理。 ### 一、项目配置 #### 1. 开发工具编码设置 - **Eclipse**: 在Eclipse中,通过`Preferences -&gt; General -&gt; ...

    php mysql excel 乱码终极处理

    ### PHP MySQL Excel 乱码终极处理 #### 一、乱码产生的根本原因 在进行PHP开发过程中,尤其是在处理Excel文件并将其数据导入MySQL数据库时,经常会遇到乱码问题。这主要是由于不同环节间的字符编码不统一所导致的...

    乱码终极解决办法java实现

    本文将详细讲解如何使用Java来实现乱码的终极解决方案。 首先,我们需要理解乱码产生的根本原因。乱码通常是由于字符集(Charset)不匹配导致的。字符集是一种规定字符如何用二进制表示的标准,如ASCII、GBK、UTF-8...

    PHP+MYSQL使用UTF8中文乱码终极解决办法

    ### PHP+MYSQL使用UTF8中文乱码终极解决办法 #### 背景介绍 在进行Web开发时,尤其是在处理中文内容时,经常会遇到一个让人头疼的问题——中文乱码。这通常发生在使用PHP与MySQL组合搭建的网站上。中文乱码不仅影响...

    Mysql在debian系统中不能插入中文的终极解决方案

    Linux下Mysql插入中文显示乱码解决方案 mysql -uroot -p 回车输入密码 进入mysql查看状态如下: 默认的是客户端和服务器都用了latin1,所以会乱码。 解决方案: mysql&gt;user mydb; mysql&gt;alter database mydb ...

    flex php显示乱码解决

    ### FLEX4+PHP+MYSQL中文乱码问题终极解决方法 在进行跨平台或跨语言的数据处理时,经常会出现字符编码不一致导致的乱码问题。本文将详细探讨如何解决Flex与PHP及MySQL之间交互时出现的中文乱码问题。 #### 问题...

    php中文乱码问题的终极解决方案汇总

    本文主要针对PHP中文乱码的四种常见情况提供了终极解决方案,帮助开发者有效地解决这类问题。 首先,我们需要理解乱码产生的主要原因:一是编码设置错误,即浏览器与服务器之间编码不匹配;二是文件以错误的编码...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    第四部 MySQL乱码问题及字符集实战(14节) 01-MySQL数据乱码及多种解决方案实战1.avi 02-MySQL数据乱码及多种解决方案实战2.avi 03-MySQL不乱码5种方法及不乱码根源深入详解.avi 04-下节内容及课后作业说明.avi 05-...

    J2EE中文问题终极解决之道

    总的来说,解决J2EE中文乱码问题需要综合考虑输入输出的各个层面,通过设定统一的UTF-8编码并配合过滤器、页面声明和数据库配置,可以实现中文问题的终极解决。同时,对于跨平台的Java应用,选择UTF-8编码是最佳实践...

    Java/J2EE中文问题终极解决之道

    ### Java/J2EE中文问题终极解决之道 在Java/J2EE开发过程中,中文字符编码问题一直是困扰许多开发者尤其是初学者的一大难题。对于此类问题的根本解决方法不仅需要理解Java系统内部如何处理字符编码,还需要掌握一...

    网吧维护技术资料 合集

    9828 网吧维护\资料\WINDOWS出错信息解析及解决方案.TXT 336 网吧维护\资料\WINDOWS的文件夹里的程序.TXT 19067 网吧维护\资料\WINDOWS蓝屏代码含意速查表.TXT 93 网吧维护\资料\WINDOWS隐藏启动文件位置.TXT 9324 ...

Global site tag (gtag.js) - Google Analytics