关于mysql乱码问题

Just_me 发布于 2014/02/13 14:09
阅读 606
收藏 2

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

SHOW VARIABLES LIKE 'character\_set\_%' 查询结果是这样

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8


空间技术人员提供的方案是 jdbc:mysql://localhost:3306/udb_username? useUnicode=true&characterEncoding=UTF-8

我这样做了,可是仍然是乱码,如何才能解决呢?这个空间没法改my.ini

这个是JFinal用的c3p0插件,是不是c3p0不支持useUnicode=true&characterEncoding=UTF-8??





加载中
1
大喵哥
大喵哥
首先要确定乱码出现的地方 是在进数据库之前就乱码了 还是进数据库之后乱码了
Just_me
Just_me
找到了,表单传输用get就乱码,用post就正常,在jetty下面用get就不乱码,在tomcat下面用get就乱码,具体原因还不知道
1
JFinal
JFinal
正如 @Singer 所说,先确定乱码出现的地方,调试一下程序,追踪相关 String 变量的值来确定
0
Duziee
Duziee
控制台大set names ‘utf8’
Duziee
Duziee
回复 @Just_me : 那直接改配置文件把
Just_me
Just_me
这个空间进不了命令行啊
Duziee
Duziee
你要进mysql控制行,不行就换gbk
Just_me
Just_me
还是没用啊
0
BunWong
BunWong

mysql > SET NAMES "UTF8";

php 的话
mysql_unbuffered_query('SET NAMES "UTF8"');

0
LucEsape
LucEsape
set character_set_server  = utf8
Just_me
Just_me
这个一开始就想到了,但是执行sql修改没用,执行后查看还是没改掉
0
白起
白起

忽略了个关键点问题,不管你的数据库指定的是何种编码,请在建表和建数据库的时候加上编码的设置。

create database database_name default character set utf8;

create table tab_name(xxxx省略) default charset=utf8;

这是最保险的方案。

Just_me
Just_me
建表的时候就是默认的utf8
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部