`

Linux、Mysql、Myeclipse中文乱码问题

阅读更多

问题描述:
在Linux下,通过Myeclipse平台,JDBC连接Mysql数据库。关键字:中文乱码。

问题分析:
首先要知道数据的流向问题:
信息输入路径:client→connection→server
信息输出路径:server→connection→results
换句话说,每个路径要经过3次改变字符集编码。以出现乱码的输出为例,server里utf8的数据,传入connection转为latin1,传入 results转为latin1,utf-8页面又把results转过来。如果两种字符集不兼容,比如latin1和utf8,转化过程就为不可逆的, 破坏性的。所以就转不回来了。

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

查看系统的字符集和排序方式的设定可以通过下面的两条命令:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

上面列出的值就是系统的默认值。

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

SET NAMES 'utf8';

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

但这里要声明一点,“SET NAMES UTF8”作用只是临时的,MySQL重启后就恢复默认了。
一劳永逸的做法是修改数据库的my.conf。
安装好数据库后,一般要将/usr/share/mysql文件夹下的my-larger.conf my-medium.cnf
my-small.cnf 中的任意一个拷贝到/etc下,重命名为my.cnf。然后在my.cnf文件中,分别在[client]和[mysqld]下添加default-character-set=utf8。即修改默认的字符集。保存后重新启动数据库服务。(/sbin/service mysql restart)

重启后,通过show create table tablename;可以查看表的默认编码。如果表是在修改my.conf以前创建的,那么这些表的默认编码将保持修改my.conf之前的状态。可以通过下面的sql语句修改:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name
;
例如:
ALTER TABLE T1 CONVERT TO CHARACTER SET utf8;

(2) 数据库连接语句:

jdbc:mysql://127.0.0.1:3306/scp?useUnicode=true&characterEncoding=utf8

最后一项utf8。

(3) 设置Myeclipse(GA8.5):

Windows->Preferences->General->Content Types->Text
,选择java,设置下面的Default encoding为UTF-8
重启。

文章来源:http://hi.baidu.com/crashice/blog/item/d65d2837296ebebad1a2d372.html

分享到:
评论

相关推荐

    MyEclipse中文乱码问题简单解决方案,不需任何编码转化

    MyEclipse中文乱码问题解决方案 在本文中,我们将讨论 MyEclipse 中的中文乱码问题,并提供一个简单的解决方案,不需要任何编码转换。这个解决方案可以直接应用于数据库插入、页面传递或 Servlet 中,解决了中文...

    myeclipse中文乱码问题

    ### MyEclipse中文乱码问题解析及解决方案 #### 一、问题概述 在使用MyEclipse进行开发的过程中,用户可能会遇到中文乱码的问题。这主要表现为在MyEclipse中的中文注释、JS文件、properties文件等出现乱码现象。...

    经验之谈myeclipse10导入项目中文乱码

    首先,我们需要了解在MyEclipse中,中文乱码问题通常涉及四个关键的编码设置: 1. **工作空间编码(Workspace)**:这是整个开发环境的基础编码设置,决定了工作空间内所有文件的默认编码。在MyEclipse中,你可以...

    myeclipse代码中文乱码解决办法

    解决MyEclipse中文乱码问题的详细指南 MyEclipse是一款功能强大且流行的集成开发环境(IDE),广泛应用于Java开发领域。然而,在使用MyEclipse时,开发者们经常会遇到中文乱码的问题。这是因为MyEclipse的默认编码...

    myeclipse中文乱码的处理

    myeclipse中各种乱码的处理方式,包括html、jsp、java文件等的乱码问题

    myeclipse 6.0.1 properties文件文中乱码问题 详细解决方案

    myeclipse 6.0.1 properties文件文中乱码问题详细解决: 1。包括各个版本eclipse的插件;插件放置位置;使用方法,(其实都很简单,但缺一不可,害我忙了大半天) 2。 native2ascii 手动转化的 最简单易用示例 3。 ...

    myeclipse中文乱码的解决方法

    本文将深入探讨"myeclipse中文乱码的解决方法",帮助你解决在使用MyEclipse过程中遇到的中文显示异常问题。 1. **问题背景** 当你在MyEclipse中创建或打开包含中文字符的文件时,可能会发现显示为乱码,这通常是...

    myeclipse乱码

    针对Myeclipse控制台的乱码问题,我们可以采取以下两种解决方法: 1. 修改Myeclipse控制台编码: 用户可以通过Myeclipse的设置来更改控制台的字符编码。路径是`Window -> Preferences`,在这里找到与服务器相关的...

    myeclipse导入项目后中文乱码的解决方案

    MyEclipse中文乱码解决方案 ...MyEclipse中文乱码问题可以通过设置全局编码、局部编码、MyEclipse编码、文件默认编码等方式解决。开发人员可以根据自己的需求选择合适的编码方式,以解决中文乱码问题。

    myEclipse乱码解决办法

    在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一、将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows->Preferences->general->Workspace->Text file encoding->Other框中的Text ...

    关于MyEclipse5.5合成SSH后出现中文乱码的问题解决方法之一

    本篇文章主要探讨了在MyEclipse 5.5环境下进行SSH整合时出现的中文乱码问题以及一种可能的解决方案。 首先,我们需要理解SSH框架的组成部分。Struts2是MVC设计模式中的Controller层,负责处理用户请求并转发到相应...

    MyEclipse中文显示乱码问号非正常显示

    ### MyEclipse中文显示乱码问题及解决方案 #### 一、问题概述 在使用MyEclipse进行Java开发的过程中,有时会遇到中文字符显示为乱码或问号的问题。这一问题通常发生在读取含有中文的文件(如源代码文件、配置文件等...

    linux MyEclipse2013破解工具

    MyEclipse2013 MyEclipse2014 MyEclipse10.x的破解工具适合Linux平台

    使用MyEclipse遇到的乱码问题解决

    在使用MyEclipse这款强大的Java集成开发环境时,开发者可能会遇到一个常见的问题——乱码问题。这主要体现在代码编辑器中显示的源代码字符编码不正确,或者在编译、运行过程中输出的文本出现乱码。本文将深入探讨...

    linux下myEclipse6.5

    对于Java开发者而言,Linux平台上的集成开发环境(IDE)是必不可少的工具,MyEclipse就是其中之一。本篇文章将详细介绍如何在Linux环境下安装和配置MyEclipse 6.5以及与之配合的Tomcat 6.0服务器,帮助你搭建完整的...

    MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...

    linux安装myeclipse教程

    ### Linux安装MyEclipse...综上所述,本文档详细介绍了在Linux环境下安装和配置MyEclipse 8.0的完整流程,涵盖了下载、安装、注册以及解决权限问题等多个方面,为用户在Linux平台上搭建Java开发环境提供了实用指南。

    Linux下安装MyEclipse7.0步骤详解

    ### Linux下安装MyEclipse7.0步骤详解 #### 前言 本文旨在详细介绍如何在Linux环境下安装MyEclipse7.0。MyEclipse是一款非常流行的Java集成开发环境(IDE),尤其适合Java Web应用程序的开发。对于在Linux平台上的...

Global site tag (gtag.js) - Google Analytics