class Test
{
public static void main(String[] args)
{//这里的java源文件是用的utf-8编码//GBK可成功转换并转回去,用IE来看的话选GB2312可以看到第一个和第三个(test中文test涓枃test中文),选UTF-8可看到第二个(test֐΄test中文test֐΄)
String s = "test中文";
try {String s2 = new String(s.getBytes("UTF-8"),"gbk");String s3 = new String(s2.getBytes("gbk"),"UTF-8");System.out.println(s+"|"+s2+"|"+s3);
FileWriter f = new FileWriter("e:/ttt.htm");
PrintWriter out = new PrintWriter(f);
out.print(s);
out.print(s2);
out.print(s3);out.close();
f.close();} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//===================================================
////GB2312同样的写法且得出来除第一个外,其他均错:test中文|test涓????|test?????String s = "test中文";
try {String s2 = new String(s.getBytes("UTF-8"),"gb2312");String s3 = new String(s2.getBytes("gb2312"),"UTF-8");System.out.println(s+"|"+s2+"|"+s3);
FileWriter f = new FileWriter("e:/ttt.htm");
PrintWriter out = new PrintWriter(f);
out.print(s);
out.print(s2);
out.print(s3);out.close();
f.close();} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//=================================================== }
}
{
public static void main(String[] args)
{//这里的java源文件是用的utf-8编码//GBK可成功转换并转回去,用IE来看的话选GB2312可以看到第一个和第三个(test中文test涓枃test中文),选UTF-8可看到第二个(test֐΄test中文test֐΄)
String s = "test中文";
try {String s2 = new String(s.getBytes("UTF-8"),"gbk");String s3 = new String(s2.getBytes("gbk"),"UTF-8");System.out.println(s+"|"+s2+"|"+s3);
FileWriter f = new FileWriter("e:/ttt.htm");
PrintWriter out = new PrintWriter(f);
out.print(s);
out.print(s2);
out.print(s3);out.close();
f.close();} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//===================================================
////GB2312同样的写法且得出来除第一个外,其他均错:test中文|test涓????|test?????String s = "test中文";
try {String s2 = new String(s.getBytes("UTF-8"),"gb2312");String s3 = new String(s2.getBytes("gb2312"),"UTF-8");System.out.println(s+"|"+s2+"|"+s3);
FileWriter f = new FileWriter("e:/ttt.htm");
PrintWriter out = new PrintWriter(f);
out.print(s);
out.print(s2);
out.print(s3);out.close();
f.close();} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//=================================================== }
}
解决方案 »
- ireport打印xls文件问题
- javaBean连接MySQL数据库字符编码问题
- 急救 <jsp:include page=""/> 我要崩溃了
- 大家帮帮忙啊,一个多星期了
- 在线等!!~~“No action instance for path /×× could be created”问题。。
- 关于系统架构
- 一个连接数据库Bean查询的问题
- 关于strtus中的Action类取得ApplicationResources_zh.properties中相关的值?
- 怎么编一个像csdn这样的论坛啊?
- 怎样用Tomcat配置已经存在的WEB-INF目录?
- 哪位高手提供下四级联动的代码?重分相谢
- 寻求JSP高手合作
现在WEB容器错误地将gbk用utf-8读出来了,相当于new String(str..getBytes("gbk"),"UTF-8");请问如何返回到最初的gbk状态?
相反的就是将客户端的转换成utf-8传给server
http://www.blogjava.net/rickhunter/articles/33571.html
HttpServletRequest req = (HttpServletRequest)request;
req.setCharacterEncodint("gb2312");
if (request.getParameter("encode") != null) {
//里面什么事情都不做
}//在servlet中
if (request.getParameter("encode") != null) {
isGBK = true;
}...
if (isGBK) {
txtContent = new String(request.getParameter("zxContent").getBytes("ISO-8859-1"), "GBK");
}搞定!
经过了一番艰苦的测试...终于能将gbk编码和utf8编码同时处理了,其中gbk的页面需要在表单中加一个<input name="encode" type="hidden" value="gbk" />
if (request.getParameter("encode") != null) {
//里面什么事情都不做
}才能行,去掉之后就不行了.