在Jsp程序读取或向DB写入数据乱码解决办法

js|程序|解决|数据

在Jsp程序读取或向DB写入数据乱码解决办法

在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号。
这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了。
1、在网页中输出中文。
JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:
String str="中文";
str=new String(str.getBytes("GB2312"),"8859_1");
但如果在编译程序时,使用的编码是“GB2312”,且在中文平台上运行此程序,不会出现此问题,一定要注意。
2、从参数中读取中文
这正好与在网页中输出相反如:
str=new String(str.getBytes("8859_1"),"GB2312");
3、操作DB中的中文问题
一个较简单的方法是:在“控制面扳”中,把“区域”设置为“英语(美国)”。如果还会出现乱码,还可进行如下设置:
取中文时:str=new String(str.getBytes("GB2312"));
向DB中输入中文:str=new String(str.getBytes("ISO-8859-1"));

4、在JSP中的中文解决:

在“控制面扳”中,把“区域”设置为“英语(美国)”.
在JSP页面中加入:
如果还不行正常显示,则还要进行下面的转换:
如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不会出现中文问题了。

时间: 2024-10-03 00:44:00

在Jsp程序读取或向DB写入数据乱码解决办法的相关文章

多线程-求 有关 高并发 数据区 读取更新 数据 的解决办法

问题描述 求 有关 高并发 数据区 读取更新 数据 的解决办法 问题:高并发 数据库取数据,每次取到一条数据后更新这条数据的状态为已取用过. 环境:3台服务器跑应用 处理请求,多线程数据库取数据 有点类似 12306的买票,查找过资料 有看到 1W人 同时抢一张票的问题. 现在考虑的问题是,如果票是足够多的,如何解决高并发取数据冲突的问题,如果用加锁的方式,会出现大量请求都取一条数据,导致 等待时间太长. 有没有 好的方案,可以避免同时请求到同一条数据. 解决方案 可以用大数据分布式云计算物联网

plsql在64位机器下读取tnsname.ora 及oracle_home异常的解决办法

问题是: 我在自己电脑(win7  64bit)上安装了oracle的64位数据库   通过sqlplus能正常连接 主要是安装pl/sql时   我是这样安装的1.在网上下载了个instantclient-basic-nt-11.2.0.3.0包  解压放在E盘下   路径如下E:\instantclient-basic-nt-11.2.0.3.0\instantclient_11_2 2.我在PL/SQL中的perferences中connection中的oracle_home:E:\ins

VS 2005编译的程序在XP系统下不能运行的解决办法

我们有这样的经验,在VC6.0.VS2003下使用Use MFC in a shared DLL选项编译出来的程序,如果在一台纯洁的机器上运行,会弹出警告,提示我们缺少某些dll.我们乖乖的把那些库收集起来,打包的时候裹到一起就OK了. 可是,在VS2005下,好日子不再有了.在VS2005下使用Use MFC in a shared DLL选项编译出来的程序,在Windows 2003或Windows XP下运行,系统会警告:"应用程序配置不正确,应用程序因此未能启动,重新安装也许会解决此问题

引起电脑程序无响应的几种原因和解决办法

最近一位大学同学问过我这样的一个问题:为什么电脑近期老是出现浏览网页时电脑无响应,需要结束任务才可以关闭当前程序,对于这个问题,多数人可能都会遇到过,个人经验认为这种现象产生的原因有很多.以前发现有些电脑新手遇到电脑无响应就开始不知所措,盲目的乱点鼠标,想结束当前窗口,但往往事与愿违,这时候鼠标根本就没用,虽然鼠标多数可以移动,但什么都操作不了,越是点击鼠标越是电脑无响应. 有的时候刚好在网上写文章,由于插图了一张网页图片或其它信息时,最讨厌的就是出现程序无响应,笔者就深受其害,一篇辛苦写了好半

jsp cookie存入中文值乱码解决办法

解决办法原因是: 使用java.net.URLEncoder.encode()可以对要传递的中文进行编码 a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param); 取值时用语句java.net.URLDecoder.decode(param);再转回中文 例,设置cookie  代码如下 复制代码 <%  String str = "这是中文的cookie值";  Cookie c = new Cookie("str&quo

jsp中向cookie写入中文乱码解决方法

Cookie不能直接存中文,中文必须编码成asccii串才行,可以这样做    代码如下 复制代码 String   str   =   java.net.URLEncoder.encode(中文);   得到编码后的字符串     取出后这样解码:    代码如下 复制代码 String   str   =   java.net.URLDecoder.decode(编码后的字符串);   具体方法 一般是这样一个过程   字符串转码==>存入cookie===>读取cookie==>转

Eclipse javax.servlet.jsp.PageContext cannot be resolved to a type 错误解决办法

目前在jsp页面form action中使用${pageContext.request.contextPath }/servlet的写法,但是一直提示有错误,错误如下:javax.servlet.jsp.PageContext cannot be resolved to a type 网上解答过说要缺少jsp-api.jar,导入这个包之后不报错了,但是程序启动访问这个页面的时候出现如下错误: org.apache.jasper.JasperException: Unable to read T

pl/sql程序编写中遇到的一些问题及解决办法

程序|解决|问题 1.在pl/sql中,order by子句中的条件可以使用变量! DECLARE v_orderbystr VARCHAR2(30); v_userid VARCHAR2(30); v_username VARCHAR2(30); v_gender NUMBER; v_rownum NUMBER; TYPE tcur IS REF CURSOR; results tcur; BEGIN v_rownum:=0; v_orderbystr:='username';    OPEN

百度网盘下载东西显示本地文件写入失败的解决办法

  小编最近在使用百度网盘下载东西的时候,异常关机了一下,启动的时候,进行下载,就显示了本地文件写入失败的问题,下面小编为大家分享下,如何解决这个问题. 1.我们一般,可能会由于异常断点关机,或者硬盘重新拔插,导致本地文件写入失败. 2.遇到这种情况,首先我们重命名一下网盘上的文件,然后再次点击下载, 3.如果这种情况还不行的话,我们就使用下种方法,首先找到自己的安装文件,把百度网盘卸载. 4.卸载完成后,我们打开浏览器,找到百度网盘最新版本进行下载.安装. 5.下载完成点击安装,安装成功后,打