`
Aubergine_kang
  • 浏览: 264831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习脚步--- 以MYSQL为数据库的程序中的乱码问题

阅读更多

                             MYSQL为数据库的程序中的乱码问题

本人是初学者很多知识的总结还不完善,但是为了个人学习,所以进行了总结。有什么不对的请大家指教!

一、两种查看MYSQL编码的方式:

1status

         可以查看MYSQL对数据库默认的字符编码,use 某个数据库后,则显示这个数据库的编码

2. show variables like 'character\_set\_%';

     可以查看更详细的信息:

    character_set_server:设置服务器使用的字符集

character_set_client :设置客户端发送查询使用的字符集

character_set_connection :设置服务器需要将收到的查询串转换成的字符集

character_set_results :设置服务器要将结果数据转换到的字符集,转换后才发送给客户端

二、如何比较有效的避免乱码?

注意:要避免乱码,就要全面的进行预防,从MYSQL数据库的默认编码、命令操作的地方、建数据库设置、建表设置、程序设置。

1.在安装MYSQL数据库的时候不要一下子默认到底,要特别留心使用的字符编码,将其设置为UTF8(这个传说在实际中比GBK用的要多),省得以后麻烦。

2.可以在终端写create database aubergine character set utf8;建立数据库,但是,不建议在终端建表,尤其是向表中insert数据,因为从终端插入的数据和系统平台的编码有关,容易产生乱码。所以,1>传说程序员有个习惯,在向数据库插入数据的时候,是将建表、插入语句写入.sql文件中,然后在MYSQL的终端建立好数据库后source一下这个.sql文件;

那么,还有一种方法,2>使用MyEclipse开发的,可以在MyEclipse中建立数据库连接后,建立一个SQL EDITOR,将建表、插入语句写进去,点击绿色的三角运行。

3.剩下的就是写法上注意的了:----插入数据

1>打开MYSQL的终端,建立数据库,使用source命令往数据库中建表并插入数据

        create database aubergine default character set utf8;

        use aubergine;

        set names utf8;

        source E:/aubergine.sql;

        注意:查了一下资料说set names utf8;相当于下面的三条命令:

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_results=utf8;

            aubergine.sql中如何写来达到对表的字符编码的设置呢?

DROP  TABLE IF  EXISTS  kang;

CREATE  TABLE  kang (

id  int(12)  NOT  NULL  auto_increment,

order_id  int(10)  unsigned  NOT  NULL,

product_id  int(10) unsigned  NOT  NULL,

dang_price  double  NOT  NULL,

product_num  int(10) unsigned  NOT  NULL  default  '1',

amount  double  NOT  NULL,

PRIMARY  KEY  (id)

) ENGINE=InnoDB  DEFAULT  CHARSET=utf8;

设置数据库存储引擎默认的的数据库字符编码是utf8,这个就是对表进行的字符编码设置。

注:如果使用的MyEclipse中的DB Browser来插入数据,那么在写url的时候要写作:

jdbc:mysql://localhost:3306/aubergine?characterEncoding=utf8

 4.程序中的写法注意:

1>Jdbc连接数据库的时候在指定url的时候标注(由于是mysql数据库所以utf8之间没有横杠)

String url="jdbc:mysql://localhost:3306/auber?characterEncoding=gbk";

(如果使用utf-8编码  String url="jdbc:mysql://localhost:3306/auber?characterEncoding=utf8";)

2> request.setCharacterEncoding(utf-8)----------------------》可以使用过滤器来实现

3> <meta http-equiv="content-type" content="text/html;charset=gbk">

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head></head>中。

4> response.setContentType( "text/html;charset=UTF-8 ");//jsp代码处写的

5> <%@ page contentType="text/html;charset=GB2312" pageEncoding="GB2312"%>//jsp文件的头部写的

6>有时候method=”post”没错,可能get有错则:更改tomcat---àconfig--àserver.xml里面的编码(URLEncoder是个很好用的)

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

改为

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

redirectPort="8443"

urlencoding="utf-8"/>

补充:如果在安装MYSQL数据库的时候就是默认的Latin文怎么办?

mysql安装后的目录中找到my.ini文件,然后把里面的default-character-set=LATIAN改成default-character-set=GBK 或者是UTF-8

这个在你的电脑上存在其他项目的时候不建议使用,因为更改这个会影响到其他项目的编码。 

 

分享到:
评论

相关推荐

    mysql-connector-java-8.0.13.jar mysql数据库驱动下载

    MySQL-Connector-Java是Oracle官方提供的用于Java应用程序连接MySQL数据库的驱动程序,它实现了Java Database Connectivity (JDBC) API,使得Java开发者能够方便地在Java应用中与MySQL数据库进行交互。 在Java开发...

    资料-MySQL数据库、视频-MySQL数据库

    MySQL-运维篇.pdf MySQL-进阶篇.pdf MySQL-基础篇.pdf MySQL存储过程.xmind 文档 运维篇.rar 进阶篇.rar 基础篇.rar 资料-MySQL数据库 视频-MySQL数据库 文档 运维篇.rar 进阶篇.rar 基础篇.rar MySQL-运维篇.pdf ...

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

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

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

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

    MySql数据库导入乱码

    解决 MySql 数据库导入中文乱码的问题需要正确设置字符集,并在数据库连接文件中指定字符集。只有这样,我们才能正确地导出和导入 MySql 数据库。 在实际操作中,我们需要注意以下几点: 1. 在导出数据库时,需要...

    c#解决mysql乱码问题的解决及mysql数据库操作的封装

    在C#编程中,与MySQL数据库交互时可能会遇到编码问题,导致数据乱码。这个问题通常是由于编码不一致或设置不当造成的。本篇文章将详细介绍如何解决MySQL数据库中的乱码问题,并探讨如何通过C#进行数据库操作的封装,...

    C++ 电影公布器2.0-------网络版MYSQL数据库

    在这一版本中,开发人员选择了MySQL作为其后端数据库系统,这是因为MySQL具有高效、稳定、开源和可扩展的特性,非常适合处理大量数据和并发操作。 1. **C++编程基础** - C++ 是一种静态类型的、编译式的、通用的、...

    全国计算机二级考试MySQL数据库程序设计教学视频课程(14章)

    通过以上知识点的学习,考生可以全面地掌握MySQL数据库程序设计的相关技能,为通过全国计算机二级考试打下坚实的基础。此外,配合提供的电子试卷和习题讲解,能够更加有效地检验自己的学习成果,提高备考效率。

    mysql-connector-java-8.0.29.zip_数据库

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用程序中访问MySQL数据库。MySQL-connector-java...

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

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

    解决Mysql数据库在web开发中乱码问题

    在Web开发中,尤其是使用MySQL数据库进行数据存储时,字符编码问题经常会导致中文或特殊字符显示为乱码,严重影响用户体验和数据的准确性。本文将详细探讨如何解决MySQL数据库在Web开发中的乱码问题,确保数据在各个...

    Python-Excel一键导入MySQL数据库MySQL数据库一键读取到Excel表格

    首先,我们需要了解Python中的两个关键库:`pandas`和`mysql-connector-python`。`pandas`是用于数据分析的强大库,能够方便地读取和操作Excel文件;`mysql-connector-python`则是MySQL官方提供的Python连接器,可以...

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

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

    MySQL数据库应用形考实验1-4全答案.zip

    在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到数据的查询、增删改,以及数据库系统的维护等关键知识点。以下是对这些实验的详细...

Global site tag (gtag.js) - Google Analytics