孔雀王大哥,中文显示问题请大哥给小弟帮忙!!万分感谢

q3643 2003-05-04 11:30:13
大哥现在有个问题更困扰我
就是中文问题
具体如下
<%@ page contentType="text/html;charset=gb2312"
import = "java.sql.*, java.io.*, java.util.*, cn.com.shenqi.work.*"
%>
这是我的头文件
在查询数据库后我把结果放在一个collection里
取出时没有问题,比如名字叫"电视机"

ProductTO product = (ProductTO)it.next();
strName = product.getName();
System.out.println("strName = " + strName); //这里显示正确,"电视机"

然后我想要提交给另一个页面,根据detailInfo.jsp?Name=strName
<input type="hidden" name="Name" value="<%=strName%>">
<tr><td width=500 bgcolor=#eeeeee><div align=center><a href=detailInfo.jsp?Name=<%=strName%>>

然后在detailInfo.jsp中通过
String srcName = request.getParameter("Name"); //其实到这里Name也是??
byte[] temp = srcName.getBytes("ISO-8859-1");
String destName = new String(temp);
System.out.println("destName = " + destName);

可是这里显示的destName却为"??"
这是怎么回事?
请大哥尽快给我答复,谢谢大哥了
...全文
35 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlexHoo 2003-05-04
  • 打赏
  • 举报
回复
String s = new String(str.getBytes("ISO-8859-1"),"gb2312");
snow2003 2003-05-04
  • 打赏
  • 举报
回复
我是做了一个javabean这样多个页面可以使用:代码如下:
package online;
public class ISOtoGb2312
{
public static String convert(String str)
{
try
{
byte[] bytesStr=str.getBytes("ISO-8859-1");
return new String(bytesStr,"gb2312");
}
catch(Exception ex)
{
return str;
}
}
}

然后在你的叶面中调用:
<jsp:useBean id="workc" scope="page" class="online.ISOtoGb2312" />
然后
workc.convert(.........)
就可以了
注意online是包名也就是文件夹的名称你可以自己定义。
hjb1029 2003-05-04
  • 打赏
  • 举报
回复
srcName=new String(request.getParameter("Name").getBytes("ISO8859-1"));
q3643 2003-05-04
  • 打赏
  • 举报
回复
谢谢这位大哥

这个方法我也用过不过也没成功,不过我相信是对的
我上面写的方法本来也不行,不过我不知道改发改发改了什么可以用了

不过还是感谢你

给你分不过不是满分哦
lynx1111 2003-05-04
  • 打赏
  • 举报
回复
小事就不麻烦孔雀王大哥了
小弟替你解决
<%!
public 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;
}
catch(Exception e)
{

}
return "null";
}
%>
把它放在头文件然后
///转换中文
logname=getStr(logname);
peacock_king 2003-05-04
  • 打赏
  • 举报
回复
其中,"utf-8"可以改成任何一种支持种文字串的编码,比如:"GB2312"、"GBK"。

encode与decode的原理:
encode将原来的双子节字串,转换成八进制字串,数据无损;
decode将其还原。
peacock_king 2003-05-04
  • 打赏
  • 举报
回复
传递参数时,我喜欢用如下方式:

1、设有中文字串如下:
String ss="中文字串";

2、传送字串:
String param;
try{
param=java.net.URLEncoder.encode(ss,"utf-8");
}catch(java.io.UnsupportedEncodingException e){}

3、接收字串:
String the_param;
try{
the_param=java.net.URLDecoder.decode(param,"utf-8");
}catch(java.io.UnsupportedEncodingException e){}
boat2002w 2003-05-04
  • 打赏
  • 举报
回复
<%
~~~~~~~~~~
byte[] temp;
temp=.getBytes("iso-8859-1");
变量名=new String(temp);
%>

这个要是不行你 就 用用
<%
变量名=new String(变量名.getBytes("gb2312"),"iso-8859-1" );
%>

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧