当前位置: 技术问答>java相关
jsp中问显示问题,看过很多文章了,可还没解决,见笑了,再请指点!
来源: 互联网 发布时间:2015-10-07
本文导语: 在一个jsp页面中,用后,用参数传递,用request.getParameter(" ")得到的中文都能正确显示出来,可是如果在本页面中直接用中文赋值或是嵌入html语句中有中文则都显示为乱码,即使在html语句的head中加入使用中文编码也...
在一个jsp页面中,用后,用参数传递,用request.getParameter(" ")得到的中文都能正确显示出来,可是如果在本页面中直接用中文赋值或是嵌入html语句中有中文则都显示为乱码,即使在html语句的head中加入使用中文编码也没用,我想在jsp页面中加入到底有什么用,使仅仅将传过来的参数编码吗?但本页面的中文就不管了吗?到底这个页面指令是在什么时候起作用的?是在刚开始参数传过来时,还是在页面结束,即显示前?(试过自己写一个转化的函数,也不管用)我用的是jdk1.4,tomcat3.3.1,tomcat4也用过,不过好象更糟,请各位大虾指教,万分感谢!!
|
针对jsp和servlet:
解决办法:
第一:
在jsp页面加入:
或者在servlet里面
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=gb2312");//这是重要的
上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
3:)解决weblogic/webshpere中文问题:
在web.xml文件中需要配置中文环境。r如下:
weblogic.httpd.inputCharset./*
GB2312
解决办法:
第一:
在jsp页面加入:
或者在servlet里面
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=gb2312");//这是重要的
上面的如果在不行就用如下的方法在数据入库前进行调用:
public static String UnicodeToChinese(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
3:)解决weblogic/webshpere中文问题:
在web.xml文件中需要配置中文环境。r如下:
weblogic.httpd.inputCharset./*
GB2312
|
這樣轉化一下
String str=request.getParameter("txtName");
str=new String(str.getBytes("iso-8859-1"),"GBK");
String str=request.getParameter("txtName");
str=new String(str.getBytes("iso-8859-1"),"GBK");
|
这是编码的问题,数据库编码是iso-8859-1
页面是gb2312
页面提交会有一个过程gb2312-》iso-8859-1
所以你要把他转成iso-8859-1——》gb2312
数据库格式是iso-8859-1
所以入数据的时候要gb2312-》iso-8859-1,否则是乱码
从数据里面出来就是8859,所以必须要转化成2132才能显示。
转化的方法
String sApp = new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312")
反之
String sDB = new String(sDB.getBytes("gb2312"),"iso-8859-1")
页面是gb2312
页面提交会有一个过程gb2312-》iso-8859-1
所以你要把他转成iso-8859-1——》gb2312
数据库格式是iso-8859-1
所以入数据的时候要gb2312-》iso-8859-1,否则是乱码
从数据里面出来就是8859,所以必须要转化成2132才能显示。
转化的方法
String sApp = new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312")
反之
String sDB = new String(sDB.getBytes("gb2312"),"iso-8859-1")
|
String getStr(String str){
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp.trim();
}catch(Exception e)
{
return "null";
}
}
这种情况,我总是这么处理的,希望能对你有用
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp.trim();
}catch(Exception e)
{
return "null";
}
}
这种情况,我总是这么处理的,希望能对你有用