加个<%@ page contentType="text/html;charset=gb2312"%>
试试
试试
解决方案 »
- JAVA中的socket关闭事件监听
- 如何设置 jfreechart 柱体间的距离 和jfreechart在linux下的中文乱码问题
- hibernate配置一对多和不配有什么区别?
- 基于java语言的GIS开发问题
- 为什么JSP页面在tomcat4.0里正常,放5.5里就有一些变乱码
- org.xml.sax.SAXParseException: Attribute "xmlns" must be declared for elemen
- 关于JSP读取域账户的问题
- Spring 改变 Mybaties sql
- java 邮件 edm
- hibernate双向一对一主键关联的问题
- 如何把list或者menu的数值传到jsp页面?
- 总共350分!表单提交后,POST的内容是否会按服务器端的ENCODING自动转换?(在线等候)
String s=new String(str.getBytes("8859_1"),"gb2312");
或str.getBytes("gb2312"),"8859_1");
有一些server的编码方式不一样,如JBuilder的编码方式就很诡异
//中文编码的转换----------------------------------------------------------
public String toGb(String uniStr){
String gbStr = "";
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
}catch(UnsupportedEncodingException uef){
}
return gbStr;
}
public String toUni(String gbStr){
String uniStr = "";
if(gbStr == null){
gbStr = "";
}
try{
byte[] tempByte = gbStr.getBytes("GB2312");
uniStr = new String(tempByte,"ISO8859_1");
}catch(UnsupportedEncodingException uef){
}
return uniStr;
}
//end of toGb---------------------------------------------------------
//中文编码的转换----------------------------------------------------------
public String toGb(String uniStr){
String gbStr = "";
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
}catch(UnsupportedEncodingException uef){
}
return gbStr;
}
public String toUni(String gbStr){
String uniStr = "";
if(gbStr == null){
gbStr = "";
}
try{
byte[] tempByte = gbStr.getBytes("GB2312");
uniStr = new String(tempByte,"ISO8859_1");
}catch(UnsupportedEncodingException uef){
}
return uniStr;
}
//end of toGb-------------------------------------------------转吧,这样不行,就那样
因为你的页面是个框架结构,所以“<%@ page contentType="text/html;charset=gb2312"%>
”只对主页面起了作用,即主页面在编译时按汉字码进行了编译,而显示信息的页面因为没有指明字符集,所以系统按照默认的编码,一般是“ISO8859-1”来进行编译,这时就出错了。解决方法:
1、对信息进行编码转换。这是一般JSP网页中都需要做的。比如“weidegong(weidegong) ”的方法。
2、若有可能,在显示信息的网页(框架)中加入“<%@ page contentType="text/html;charset=gb2312"%>”
3、提供一个更保险的方法,将字符转为UNICODE码,并用&#x+UNICODE码+;的形式写出,这样的转化文字将在任何浏览编码集下正常显示中文。不信我提供一个javaBean,你自己试试。代码如下。(如需使用,请注明作者jetplane)
//Begin====================================
import java.io.Serializable;public class c2uGB implements java.io.Serializable
{
public c2uGB(){}
public static String toHEXString(byte b)
{
return (""+"0123456789ABCDEF".charAt(0xf&b>>4)+"0123456789ABCDEF".charAt(b&0xF));
}
public String getc2u(String setStr)
{
String szRet="",szRetTmp;
try
{
String str = new String(setStr.getBytes("GB2312"),"GB2312");
byte[] bb=str.getBytes("UTF16");
for(int i=2;i<bb.length;i++)
{
i++;
if(bb[i-1]!=0)
szRetTmp = "&#x" + toHEXString(bb[i-1]) + toHEXString(bb[i]) + ";";
else
szRetTmp = new String(bb,i,1,"GB2312");
szRet = szRet + szRetTmp;
}
}
catch(Exception e)
{
szRet="c2u fail";
e.printStackTrace();
}
return szRet;
}
}
//End===============================================