JSP怎样处理中文字符?

phptong 2004-09-01 12:17:39
在JSP中:String str=request.getParameter("中文字符");
out.println(str);
会出现乱码,应怎样处理?
...全文
301 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
小姜哥 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形式在每个页调用就可以了。

81,122

社区成员

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

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