JSP怎样处理中文字符?

phptong 2004-09-01 12:17:39
在JSP中:String str=request.getParameter("中文字符");
out.println(str);
会出现乱码,应怎样处理?
...全文
238 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小姜哥 2010-05-29
我试验过的,没有问题 可以加QQ731958576 说明原因
strOut = new String(strIn.getBytes("8859_1"), "GB2312");
  
strIn是未经过转换的字符串,其编码为ISO8859_1,strOut是经过转换的字符串,其编码为GB2312。

也可以这么写
String name = request.getParameter("cmd");
name = new String(name.getBytes("ISO-8859-1"), "gb18030");
回复
phptong 2004-09-02
还请高人指点!
回复
chanxudang 2004-09-02
(1)、如果是直接赋值的中文字符串,用<%@ page contentType="text/html; charset=gb2312"%>就可以正常显示。
(2)、如果是Request传来的中文字符串,要用 hoggio_1980(南林浪子) 的getStr(String str)函数或者类似的函数转换内码,否则不能正常显示中文。
回复
phptong 2004-09-02
没人理我?
回复
phptong 2004-09-01
你们的方法我都试了,可还是没用,我是把中文字符提交到另一个页面,页面取值后输出结果为:????
还请高手指点
回复
grantbb 2004-09-01
看你用的是那个版本的tomcat了,如果是5.0.*,请看:
http://dev.csdn.net/develop/article/27/article/27/27837.shtm
绝对搞定,屡试不爽!!!^_^
回复
jie015 2004-09-01
中国移动通信的说法只能解决页面问题,但是如果插入数据库的话依然会出错的。
小新的这种办法可以解决数据库插入的问题的。
就是一个字符流的问题。
回复
CHLC 2004-09-01
同一楼
回复
veryxiao 2004-09-01
String str=new String((new String(request.getParameter("中文字符")+"").trim()).getBytes("ISO-8859-1"),"GBK");
回复
frieblade 2004-09-01
<%@ page contentType="text/html; charset=gb2312" %>
回复
skyboy0720 2004-09-01
request.setCharacterEncoding("gb2312");
String str=request.getParameter("中文字符");
out.println(str);
回复
phptong 2004-09-01
但取出的中文字符在数据库中却不好操作,如:
sql="select * from cominfo where name like '%"+strname+"%'";
其中strname为转化过来的中文字符,咋办?
回复
hoggio_1980 2004-09-01
可以自定义一个函数,以后在页面中遇到中文的问题,调用这个函数就行了!
public String getStr(String str)
{
try{
String temp=str;
byte[] temd=temp.getBytes("GBK");
String tem=new String(temd,"ISO8859_1");
return tem;
}
catch(Exception e)
{
e.printStackTrace();
}
}

有了这个函数,像你上面的可以直接getStr(strUser);
回复
phptong 2004-09-01
我是出学JSP者,顺便问一下,啥是JavaBean?
回复
phptong 2004-09-01
你们的方法我都用了,包括:
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*" %>
<%
String strUser=request.getParameter("username");
strUser=new String(strUser.getBytes("ISO8859_1"),"GB2312");
out.println(strUser);
%>

String strUser=new String(request.getParameter("userid").getBytes("ISO-8859-1"),"GB2312");
out.println(strUser);
两种方法。还是没用,再请你们帮忙!
回复
yjc2020 2004-09-01
String name=request.getParameter("username");
name=new String(name.getBytes("ISO8859_1"),"GB2312");

这个写在javabean不错
回复
tiefe 2004-09-01
String code=new String(request.getParameter("中文字符").getBytes("ISO-8859-1"),"GB2312");
若不行用下方法试试:
<%@page contentType="text/html; charset=gb2312" ……%>
String code=request.getParameter("中文字符");
回复
wangwei8117 2004-09-01
用下面这个,我使用过的!
String name=request.getParameter("username");
name=new String(name.getBytes("ISO8859_1"),"GB2312");
回复
yuqianloveme 2004-09-01
为了方便,把字体转换定忧JAVABEAN形式在每个页调用就可以了。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-01 12:17
社区公告
暂无公告