你做网页之前的准备工作就是统一编码。我一直都是utf-8数据库是用的UTF-8,工作空间UTF-8,项目UTF-8,源代码的编写用的UTF-8,包括xml,jsp,配置文件等都是UTF-8,所有的网页页面编码是UTF-8,
如果出现了乱码,拿就只有一个地方:
requestsetCharacterEncoding()
responsesetCharacterEncoding()
responsesetContentType()
(不过这个都是用在拦截器里的,)
如果你这样了,都还是乱码,那只有可能是你
requestsetCharacterEncoding()
responsesetCharacterEncoding()
responsesetContentType()
的地方不对,要在最开始使用request,response的地方设置编码才有效,看看你设置编码的位子对不对。
API中有介绍,提到这几个方法的使用位置:
ServletResponse:
The setCharacterEncoding,
setContentType, or setLocale method must
be called before getWriter and before committing
the response for the character encoding to be used
至于为什么,你懂得
byte[] bts=null;
String other = null;
bts = rsgetBytes(i); //读取other字段
if(bts != null)
{
other = new String(bts,"gbk");
}
Access数据库必须先一beyet取出来然后进行转码
这个问题我今天解决了
但是我还有个问题,当表名为中文时,查询会出问题,还有列名为中文时取出来的列名也是乱码。帅哥你知道怎么解决这问题不
建议将获取数据库的数据集做成通用的模块,这样可以针对不同的数据库的不同字符集,进行相应的编码。比如
如果你informix的字符集是iso-1(iso-8859-1)相关的,那么直接取出来,肯定是乱码,需要转换一下:
String value=new String(resultsetgetString("field")getBytes(""iso-8859-1""));
//如果是linux系统,可能还要这样写:
String value=new String(resultsetgetString("field")getBytes(""iso-8859-1""),"GBK");
mysql乱码 无非三种情况:
1server本身配置问题,将latin1修改为utf8
2table的语系设定问题(包含character与collation)
CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
3客户端程式的连线语系设定问题
例如:dbc:mysql://localhost:3306/testuser=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
希望的我回答能帮助到您
呵呵,改一下mysql中的myini配置就可以了,不明白可以Q我
default-character-set
一共有两项,记得要和JAVA中程序,以及数据库SQL中的编码连接一致,不要一边用UTF-8,一边用GBK
我遇到过和你一样的错误,
在你编写String gb = new String(“数据库查处来的中文”getBytes("ISO-8859-1"),"UTF-8");这句话的时候请注意一下“数据库查处来的中文”必须是ISO-8859-1编码,否则转换失败。
另外光数据库是UTF-8编码是不行的,请确定一下数据库建表的时候是否设置成UTF-8编码。
希望我的回答能够帮助你,谢谢
以上就是关于java接如mysql ,出来的中文数据是乱码全部的内容,包括:java接如mysql ,出来的中文数据是乱码、java程序从access 数据库读取出来的是乱码,请教高手解决、java访问informix数据库text字段中文乱码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)