jsp程序乱码的问题 你的jsp页面的字符集和你的发布平台字符集要一样。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在页面上加上这一句就可以了。<%@ page contentType="text/html;charset=gb2312"%> 我加了这句<%@ page contentType="text/html;charset=gb2312"%>但是不行。我的类大致是这样写的,String str = "姓名,年龄";outputStream.write(str.getBytes());;使用dos命令符就是好的,在WEB上用jsp掉(javabean)就是乱码。现在的问题是写道文件中的都是乱码 outputStream.write(str.getBytes("gb2312")); 编码问题的帖子很多的你搜一下你用这个试试String str = new String("姓名,年龄".getBytes("ios8859-1"),"gb2312");outputStream.write(str.getBytes()); 楼主还是看一下javaapi的文档吧,调用基于汉字的编码要用Reader类来读,用Writer类来写 都不行啊,还是乱码!register(); // 初始化环境writer.write("\n\n"); writer.write(new String("1 测试".getBytes(), "ISO-8859-1")); writer.write(new String("2 测试".getBytes("ISO-8859-1"))); writer.write(new String("3 测试".getBytes("ISO-8859-1"), "ISO-8859-1")); writer.write(new String("4 测试".getBytes("ISO-8859-1"), "GB2312")); writer.write(new String("5 测试".getBytes("ISO-8859-1"), "GBK")); writer.write(new String("6 测试".getBytes()));writer.write("\n\n"); writer.write(new String("1 测试".getBytes(), "GB2312")); writer.write(new String("2 测试".getBytes("GB2312"))); writer.write(new String("3 测试".getBytes("GB2312"), "GB2312")); writer.write(new String("4 测试".getBytes("GB2312"), "ISO-8859-1")); writer.write(new String("5 测试".getBytes("GB2312"), "GBK")); writer.write(new String("6 测试".getBytes()));writer.write("\n\n"); writer.write(new String("1 测试".getBytes(), "GBK")); writer.write(new String("2 测试".getBytes("GBK"))); writer.write(new String("3 测试".getBytes("GBK"), "GBK")); writer.write(new String("4 测试".getBytes("GBK"), "GB2312")); writer.write(new String("5 测试".getBytes("GBK"), "ISO-8859-1")); writer.write(new String("6 测试".getBytes())); 肯定有问题:因为java用的标准字串,与我们的编码是不同的!当然在输出时出现乱码,因为我们平常用的是gb2312,java用的是un码,问题就在这里。还有汉字作参数也一样出现乱码,这是同一问题。一话解决:在程序中使用UN码,问题全解决 如果,不是UN码,请用程序转变成UN码,现输出,或者用命令强制输出UN码。 <%@ page language="java" contentType="text/html; charset=gb2312"%> 这句话解说,他只是说明这一页用gb2312来显示,如果是网页中直接写中文,当然是显示正确,你也可以把后面改成德语,他一样是正确的德文!这与乱码无关!!,但是,用write输出的是UN码,gb2312,里没有UN码!!所以同一汉字在UN输出后,再用gb2312来显示,这样可以码?当然不行,乱码! 我也正为这个问题烦恼~~请问楼上的,这个问题具体应该怎么解决啊?有没有修改某个配置文件从而可以使整个应用都避免出现乱码?我写的TAG和BEAN都存在乱码的问题! <html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body>以下的可能出现乱码:<br><%out.println("这里是乱码");%></body></html>--------------这种可能是乱码,因为汉子用java输出后是国际UN码,页里却要用gb2312显示,你说不转换会正常显示不? 肯定不行,(cat4,不行,cat5好象服务帮你自已做了转变) <%@ page contentType="text/html; charset=gb2312"%> 在上面的页里加上这句话,却实不会乱码,但这个却不能解决变量是汉字的问题!!! <%@ page contentType="text/plain;charset=UTF-8" import="java.io.*,java.text.*,java.util.*,javax.servlet.jsp.*"%><html><body><%!Locale locale;DateFormat format;JspWriter writer;%><%!//英语void processEnglish()throws Exception{ locale=new Locale("en","US"); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in English:"); writer.println("<br>"); writer.println("HelloWorld!"); writer.println(format.format(new Date())); writer.flush();}//中文void processChinese()throws Exception{ locale=new Locale("zh",""); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in Chinese:"); writer.println("<br>"); writer.println("\u4f60\u597d\u4e16\u754c"); writer.println(format.format(new Date())); writer.flush();}//韩国语void processKorean()throws Exception{ locale=new Locale("ko",""); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in Korean:"); writer.println("<br>"); writer.println("\uc548\ud558\uc138\uc694\uc138\uacc4"); writer.println(format.format(new Date())); writer.flush();}//俄语void processRussian()throws Exception{ locale=new Locale("ru",""); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in Russian:"); writer.println("<br>"); writer.println("\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439,\u041c\u0438\u0440"); writer.println(format.format(new Date())); writer.flush();}//西班牙语void processSpanish()throws Exception{ locale=new Locale("es",""); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in Spanish:"); writer.println("<br>"); writer.println("En Espa\u00f1ol:"); writer.println("\u00a1Hola Mundo!"); writer.println(format.format(new Date())); writer.flush();}//日语void processJapanese()throws Exception{ locale=new Locale("ja",""); format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale); writer.println("in Japanese:"); writer.println("<br>"); writer.println("\u4eca\u65e6\u306f\u4e16\u754c"); writer.println(format.format(new Date())); writer.flush();}%><%//获得请求的语种 String language=(String)request.getParameter("language"); int lan=Integer.parseInt(language); %><%writer=out; switch(lan) { case 1:processEnglish();break; case 2:processChinese();break; case 3:processKorean();break; case 4:processRussian();break; case 5:processSpanish();break; case 6:processJapanese();break; }%></body></html> <%@ page contentType="text/html; charset=Big5"%> 强制转变法:InputStream is = mySocket.getInputStream();InputStreamReader reader = new InputStreamReader(is, "MS950"); ========用JSP进行转换============<%@ page contentType="text/html; charset=gb2312"%> <%@ page import="java.io.*"%><%! String trans(String chi){ String result = null; byte temp []; try { temp=chi.getBytes("iso-8859-1");//这里你可以改你要的编码名 result = new String(temp); } catch(UnsupportedEncodingException e) { System.out.println (e.toString()); } return result;}%><%out.println(trans(request.getParameter("name")));%> 网站框架问题 着急 如何获取局域网内全部服务器当前时间? Gvim下,BuzzyFinder插件具体要怎么安装和使用啊? 同样的内容,提交给另外一个JSP页面是正确的中文信息,如果提交给SERVLET就编程乱码 如何在xml里建立查询,追加数据 Could not load the Tomcat server configuration 很菜的问题,恳求帮助! jsp里以下代码报错,在线等待,有分 我是否应该做个“编码”与“实际名称”转换的bean呢? 字符编码转换问题:高手请进! ubb代码的html解释? 怪事?遇见过的帮一下
<%@ page contentType="text/html;charset=gb2312"%>
我的类大致是这样写的,
String str = "姓名,年龄";
outputStream.write(str.getBytes());
;
使用dos命令符就是好的,在WEB上用jsp掉(javabean)就是乱码。现在的问题是写道文件中的都是乱码
你搜一下
你用这个试试
String str = new String("姓名,年龄".getBytes("ios8859-1"),"gb2312");
outputStream.write(str.getBytes());
调用基于汉字的编码要用
Reader类来读,用Writer类来写
writer.write(new String("1 测试".getBytes(), "ISO-8859-1"));
writer.write(new String("2 测试".getBytes("ISO-8859-1")));
writer.write(new String("3 测试".getBytes("ISO-8859-1"), "ISO-8859-1"));
writer.write(new String("4 测试".getBytes("ISO-8859-1"), "GB2312"));
writer.write(new String("5 测试".getBytes("ISO-8859-1"), "GBK"));
writer.write(new String("6 测试".getBytes()));writer.write("\n\n");
writer.write(new String("1 测试".getBytes(), "GB2312"));
writer.write(new String("2 测试".getBytes("GB2312")));
writer.write(new String("3 测试".getBytes("GB2312"), "GB2312"));
writer.write(new String("4 测试".getBytes("GB2312"), "ISO-8859-1"));
writer.write(new String("5 测试".getBytes("GB2312"), "GBK"));
writer.write(new String("6 测试".getBytes()));writer.write("\n\n");
writer.write(new String("1 测试".getBytes(), "GBK"));
writer.write(new String("2 测试".getBytes("GBK")));
writer.write(new String("3 测试".getBytes("GBK"), "GBK"));
writer.write(new String("4 测试".getBytes("GBK"), "GB2312"));
writer.write(new String("5 测试".getBytes("GBK"), "ISO-8859-1"));
writer.write(new String("6 测试".getBytes()));
这句话解说,他只是说明这一页用gb2312来显示,如果是网页中直接写中文,当然是显示正确,
你也可以把后面改成德语,他一样是正确的德文!这与乱码无关!!
,但是,用write输出的是UN码,gb2312,里没有UN码!!
所以同一汉字在UN输出后,再用gb2312来显示,这样可以码?当然不行,乱码!
有没有修改某个配置文件从而可以使整个应用都避免出现乱码?我写的TAG和BEAN都存在乱码的问题!
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
以下的可能出现乱码:<br>
<%
out.println("这里是乱码");
%></body>
</html>
--------------这种可能是乱码,因为汉子用java输出后是国际UN码,页里却要用gb2312显示,
你说不转换会正常显示不? 肯定不行,(cat4,不行,cat5好象服务帮你自已做了转变)
在上面的页里加上这句话,却实不会乱码,但这个却不能解决变量是汉字的问题!!!
<html>
<body>
<%!
Locale locale;
DateFormat format;
JspWriter writer;
%>
<%!
//英语
void processEnglish()throws Exception
{
locale=new Locale("en","US");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in English:");
writer.println("<br>");
writer.println("HelloWorld!");
writer.println(format.format(new Date()));
writer.flush();
}
//中文
void processChinese()throws Exception
{
locale=new Locale("zh","");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in Chinese:");
writer.println("<br>");
writer.println("\u4f60\u597d\u4e16\u754c");
writer.println(format.format(new Date()));
writer.flush();
}
//韩国语
void processKorean()throws Exception
{
locale=new Locale("ko","");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in Korean:");
writer.println("<br>");
writer.println("\uc548\ud558\uc138\uc694\uc138\uacc4");
writer.println(format.format(new Date()));
writer.flush();
}
//俄语
void processRussian()throws Exception
{
locale=new Locale("ru","");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in Russian:");
writer.println("<br>");
writer.println("\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439,\u041c\u0438\u0440");
writer.println(format.format(new Date()));
writer.flush();
}
//西班牙语
void processSpanish()throws Exception
{
locale=new Locale("es","");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in Spanish:");
writer.println("<br>");
writer.println("En Espa\u00f1ol:");
writer.println("\u00a1Hola Mundo!");
writer.println(format.format(new Date()));
writer.flush();
}
//日语
void processJapanese()throws Exception
{
locale=new Locale("ja","");
format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
writer.println("in Japanese:");
writer.println("<br>");
writer.println("\u4eca\u65e6\u306f\u4e16\u754c");
writer.println(format.format(new Date()));
writer.flush();
}%><%
//获得请求的语种
String language=(String)request.getParameter("language");
int lan=Integer.parseInt(language);
%>
<%
writer=out; switch(lan)
{
case 1:processEnglish();break;
case 2:processChinese();break;
case 3:processKorean();break;
case 4:processRussian();break;
case 5:processSpanish();break;
case 6:processJapanese();break;
}
%>
</body>
</html>
InputStream is = mySocket.getInputStream();
InputStreamReader reader = new InputStreamReader(is, "MS950");
========用JSP进行转换============
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.io.*"%>
<%! String trans(String chi)
{
String result = null;
byte temp [];
try
{
temp=chi.getBytes("iso-8859-1");//这里你可以改你要的编码名
result = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return result;
}
%>
<%
out.println(trans(request.getParameter("name")));
%>