问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java写中文到access数据库乱码,java项目的属性为UTF-8

发布网友 发布时间:2022-04-11 21:33

我来回答

4个回答

懂视网 时间:2022-04-12 01:55

由于Java的String类型用的是unicode编码,微软的Access 数据库 使用的是gbk编码。 所以使用String类型的变量存储Access中的文本字段 中文 会发生乱码的现象。 使用byte[]类型可以 解决 这一 问题 。 从Access 数据库 中读取 中文 byte[] bts=null; String ot



由于Java的String类型用的是unicode编码,微软的Access数据库使用的是gbk编码。

所以使用String类型的变量存储Access中的文本字段中文会发生乱码的现象。

使用byte[]类型可以解决这一问题。


从Access数据库中读取中文

byte[] bts=null; 
				String other = null; 
				bts = rs.getBytes("ziduanming"); //读取ziduanming字段 
				if(bts != null) other = new String(bts,"gbk");//如果不为空,则进行转换 
				

热心网友 时间:2022-04-11 23:03

这里要注意3个方面的设置
第一步: 在你自己的servlet里设置
//第一步设置好字体
//设置必须与网页头文件保持一直utf-8 不然依然不管用
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
第二步: 在你的接收页面的设置
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
第三步:在你的过滤器里加上相关配置文件
EncodingFilter.java

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;
public class EncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

try
{
// System.out.println("过滤开始");
// request.setCharacterEncoding("utf-8");
// chain.doFilter(request, response);
// System.out.println("过滤结束");

} catch (Exception e)
{
e.printStackTrace();
//throw new IOException(e.getMessage());
}

// Select and set (if needed) the character encoding to be used
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
最后要在web.xml里做相关的配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>util.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value></init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
恩 这些都做完的话 就应该没问题了
我的环境是JDK1.5~1.6 MyEclipse6.0
这些只是适用于J2EE工程

热心网友 时间:2022-04-12 00:21

这其中存在一个转换问题:
如System.out.println(new String("中国".getBytes("gbk"), "utf-8"));
System.out.println(new String("中国".getBytes("utf-8"), "gbk"));
//将“中国“的gbk编码格式按着utf-8解析,或者反过来都会出现乱码。
如浏览器当前为gbk编码,就以gbk编码格式来提交。 这本身是不会出现乱码的,问题就出在Web服务器接收数据的时候,HttpServletRequest在将客户端传来的数据转成ucs2码上出了问题。在默认情况下,是按着iso-8859-1编码格式来转的,而这种编码格式并不支持中文,所以也就无法正常显示中文了,解决这个
问题的方法是用和客户端浏览器当前编码格式一致的编码来转换,如果是utf-8,则在doPost方法中应该用以下的语句来处理:
request.setCharacterEncoding("utf-8");

热心网友 时间:2022-04-12 01:55

通过在项目中增加过滤器(filter)进行适当的转码就可以了,具体的方式可以参照J2EE项目中,使用filter对字符集进行统一转换的方式,当然不仅限于J2EE项目。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音火山版怎么查看钱包 查看方法介绍 职能手机v3职能手机的优点和缺点 关于Cascode运放的偏置电路 vb WindowsMediaPlayer1控件怎么同时播放两个视频文件 太阳马戏团特点 【加拿大必知百科系列】加拿大文化璀璨之星—太阳马戏团 太阳马戏团简介 垃圾短信如何拦截设置 垃圾短信拦截设置的方法 vivo xplay3s用奇兔刷机刷机后打电话显示SIM卡错误是怎么回事?卡重新插... 为什么我的vivo xplay3s联通卡插上去显示无SIM卡呢? java程序从access 数据库读取出来的是乱码,请教高手解决 正当防卫2安装问题 正当防卫2进入游戏主菜单没有字幕,游戏里也没有。 正当防卫2的问题 正当防卫2卡 为什么我玩正当防卫2会出现组策略阻止了程序,怎么解决?在线等啊 正当防卫2进入画面怎么那么卡 动作都超慢 求高手该怎么办》 正当防卫2的操作问题 正当防卫2我看到他们的视频上主角的腿动得很快跑的也很快!这是为什么这是怎么弄得! 正当防卫2运行时出现指定程序要求更新的WINDOWS版本这个怎么解决 正当防卫2调整画面和分辨率后显示输入不支持,进入游戏就是黑屏,没法重置到原来的属性,这个怎么办?= = 正当防卫2为什么出现这个错误求高手告诉我 你这个正当防卫2是怎么解决的~ 为什么我感觉正当防卫2玩起来画面有点不流畅,不是一卡一卡的。 正当防卫2配置 进入正当防卫2时出现这个 正当防卫2进不去,一直是这个提示,求大神帮忙解决 浴火银河2各勋章获得指标 浴火银河2无限刷钱详细攻略 浴火银河2hd扩展包 java查询access乱码 java程序读取access中文字符出现问号 北京凡德未来(北京诚通人力的下属事业部)培训大数据工程师,两个月包就业,贷款交培训费。靠谱吗! 甲骨文林逸飞:如何提纯大数据的业务价值? oracle biee怎么样? 数据库那你呢 Oracle DBA、系统分析师、考研--我该选择哪个? oracle中union和union all的区别 union和union all的区别 数据表压缩 oracle里的union与union all是不是一样效果的? oracle查询问题? 求java程序员的面试题+过程 JAVA程序员找工作问题 专业java程序员,应届生感觉找工作很难,有能力但是面试口才不行,大部分公司都要有经验?目前找工作 谁能给我说说面试,和找工作的经历? 现在干了三年java程序员了(两年小公司,一年东软),想去北京找工作,一般情况下工资能给多少? 各种估价方法相互之间有什么联系?价格评估结果的高低是否与评估方法有一定的联系? 各种评估方法都是实现评估目的的手段没有本质区别 评估体系从哪几方面进行评估,为什么呢? 正当防卫2这游戏配置要求太猛了