雪地里跪求:MySql乱码问题的终极解决方案

moon5284 2009-08-11 04:53:08
已经对以下两处进行修改:
my.ini配置文件中 第一个default-character-set=gbk
第二个default-character-set=utf8

但是不解决问题,重启.重建数据库都已经试过了,在MyEclipse中写的代码,没有问题,
因为直接从黑屏敲sql语句插入中文也是出错。。。

希望高手们给个解决方案,也省得我们这些小菜到处GOOGLE却找不着答案了。。。

如有QQ解答请加:594605440,备注 csdn,不胜感激。。。
...全文
109 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaolong3399 2009-08-13
  • 打赏
  • 举报
回复
恩。 楼上的说的对, 只要修改掉 my.ini 中的字符编码格式 就OK了。。
记得以后安装mysql 的时候 要选编码格式, 最好是utf-8
myhonor 2009-08-12
  • 打赏
  • 举报
回复
统一编码,我一般是数据库编码,页面编码都用UTF-8的
APOLLO_TS 2009-08-12
  • 打赏
  • 举报
回复
一是引擎格式
二是信道格式

SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;

--创建数据库XXXX

CREATE DATABASE IF NOT EXISTS XXXX CHARACTER SET utf8 COLLATE utf8_general_ci;

以上保证了引擎格式。

但是建立信道的时候要

useUnicode=true&characterEncoding=utf-8


HHubin 2009-08-12
  • 打赏
  • 举报
回复
如果楼主可以描述以下信息,我可以给你解决方案

1.操作系统

2.mysql 版本

3.mysql 安装方式[安装版 还是非 安装版]
monkeyking1987 2009-08-12
  • 打赏
  • 举报
回复
解决乱码在几个地方要保证编码一致:
1.程序连接数据库的URL中设置连接的字符集。如
jdbc.xx..database?characterEncoding=gbk
2.在建数据库是要指定字符编码。
如:create database if not exists netctoss default character set gbk;
3.在进入数据库执行SQL脚本时指定字符集。
MYSQL中使用:mysql -u username -p password --defautl-character-set=gbk
保证以上几个地方的字符集一致,乱码问题是可以解决的。
starc 2009-08-12
  • 打赏
  • 举报
回复
冰天雪地我把冰水全往头上浇!!!!
主注意你的表在什么时候建的(my.ini中 default-character-set=gbk 在[client]区增加 default-character-set=gbk ),在之前你得把表的字符集改下(之前建表用的是以前的默认的字符集),或者重建下表.
sewinten 2009-08-12
  • 打赏
  • 举报
回复
my.ini中
default-character-set=gbk
在[client]区增加
default-character-set=gbk
starc 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 starc 的回复:]
冰天雪地我把冰水全往头上浇!!!!
主注意你的表在什么时候建的(my.ini中 default-character-set=gbk 在[client]区增加 default-character-set=gbk ),在之前你得把表的字符集改下(之前建表用的是以前的默认的字符集),或者重建下表.
[/Quote]
[Quote=引用 7 楼 myhonor 的回复:]
统一编码,我一般是数据库编码,页面编码都用UTF-8的
[/Quote]
这就是终极的,究极的也像这样
yangyanan1987 2009-08-12
  • 打赏
  • 举报
回复
进入mysql的命令行,设置编码:
show Variables like '%set%';
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_system=utf8;
set character_set_results=utf8;
仍出现乱码:

1.修改数据库文件my.ini,修改client和server端的数据编码
格式均为utf8.
修改方式如下:
# CLIENT SECTION

[client]

port=3306

[mysql]

default-character-set=utf8


# SERVER SECTION

[mysqld]

default-character-set=utf8


2、修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=utf8
default-collation=utf8_general_ci
完成.
  • 打赏
  • 举报
回复
保证编码一致
  • 打赏
  • 举报
回复
保证编码一致
酒浪子 2009-08-11
  • 打赏
  • 举报
回复
我的可以希望对你有用,这个文件要放到windows目录下!
[client]

port = 3306
socket = /tmp/mysql.sock



# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock

skip-locking
key_buffer = 32M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 32k
thread_cache_size = 8
query_cache_size = 16M

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
default-character-set=GBK
datadir=f:/MySql/mysql/data
basedir=f:/MySql/mysql


log-bin=mysql-bin
server-id = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default-character-set=GBK

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[WinMySQLAdmin]
# 指定mysql服务启动启动的文件
Server=f:/MySql/mysql/bin/mysqld-nt.exe

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧