最近开发一个小项目,用mysql数据库,但是入库的数据都是乱码,在网上搜了各种解决办法都没有解决,现在求助一下大家~在mian函数中,set进中文,但是入库的时候就变成乱码,数据库的字符集已经改了,在连接数据库的字符串上加上那些参数也不成,各位大侠有什么高招啊~
解决方案 »
- 帮忙写个查询语句,选取组合最大值。
- MySQL存储过程中汉字字符串的比较实现
- sql语句中存在left join和order by,如何优化
- 在 navicat 和 phpadmin 中 如何设定触发器
- 测试mysql.Access denied for user 'ODBC'@'localhost' (using password: NO) 怎样解决?
- 怎样用存储过程动态创建表????????????????????????????????????????
- 请教一个简单的php查询mysql语句,谢谢
- 高分求救大量数据比较问题,现在,数据库里的某个表有100万条没有重复的纪录,我要插入100万条没有重复的纪录,怎样速度最快??
- 关于备份
- MySQL5.6.16,like '%zhangsan%',用explain得到的结果让我迷惑了。
- mysql错误触发捕捉
- 为什么我在MySQL 下新建的的用户不能创建自己的数据库?
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>向DB存数据:
js里用escape函数取数据,处理后存DB
从库里取出来数据后做这个处理:
<%!
public String getStr(String s){
String str=s;
try{
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e){return null;}
} String sTem1 = getStr(rs.getString(1));%>
然后在js里用unescape函数显示数据。MySQL5.0英文版+日文系统下OK。
具体参见http://blog.csdn.net/liufh44/archive/2007/09/30/1808473.aspx
在这篇文章中,已经对这个问题进行了解决
欢迎相互交流
jdbc:mysql://134.202.128.200/testdb? user=guest&password=123456&useUnicode=true&characterEncoding=gb2312
具体参见
http://hi.baidu.com/tuhaitao/blog/item/f8ba870a162fb03fb0351d57.html
出现这种情况的原因,多是字符集不匹配造成的。
在MYSQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。
插入中文字符时,与之不匹配,就会出现乱码。
本人使用的是MYSQL 5.0版,并用C#操作MYSQL数据库,当插入中文字符时,发现显示的是乱码。
初步估计是字符集没有配对。查找后,发现MSYQL默认使用的是latin1,因此将数据库的配置文件中的字符设置改为utf8,并在C#中将中文字符,转为utf8,插入后,仍为乱码。
MYSQL也支持gb2312,又将MYSQL的字符设置改为gb2312,C#中使用Default,重起MYSQL后,操作仍然无效。
后想起,虽然将MYSQL的字符集设置为gb2312或utf8,但已经建立的数据库和表,仍采用的是默认的字符集,也即仍为当初的西欧字符集,最好,只得忍痛将数据库删除,重新以gb2312字符集建立数据库和表。
再用C#插入中文字符后,一切OK。
再安装好MYSQL后,可以手工或使用配置工具,将my.ini文件中的默认字符集改为gb2312,再重新建库和表时,不用再在语句中指定字符集,其默认设置也即为gb2312,可以正常显示中文字符集。
===========================================
虽然是C#的,LZ试下
http://hi.baidu.com/hexiong/blog/item/16a10ad1b9a015d3572c84b4.html
http://hi.baidu.com/hexiong/blog/item/a7d5653813ac762397ddd8b5.html