JSP中JavaBean中传输数据的乱码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP中JavaBean中传输数据的乱码问题相关的知识,希望对你有一定的参考价值。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="text.student" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'jjj.jsp' starting page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form action="" method="post">
<p>请输入姓名:<input type=text name="name">
<p>请输入学号:<input type=text name="number">
<p>请输入身高:<input type=text name="height">
<input type=submit value="提交">
</form>
<jsp:useBean id="stu" class="text.student" scope="page"></jsp:useBean>
<jsp:setProperty name="stu" property="*"/>
<p>名字是:<jsp:getProperty name="stu" property="name"/></p>
<p>学号是:<jsp:getProperty name="stu" property="number"/></p>
<p>身高是:<jsp:getProperty name="stu" property="height"/></p>
</body>
</html>

student.java:

package text;
public class student
String name;
long number;
double height;
public String getName()


try
byte b[]=name.getBytes("UTF-8");
name=new String(b);
return name;

catch(Exception e)
return name;


public void setName(String newName)

name=newName;

public long getNumber()

return number;

public void setNumber(long newNumber)

number=newNumber;

public double getHeight()

return height;

public void setHeight(double newHeight)

height=newHeight;



每次传输数据时,当名字是汉语时就会出现乱码,,怎么回事,怎么改啊?
还是不行啊,都试了,谁能帮帮我啊

pageEncoding="UTF-8"改成gb2312
另外可以在下面在写一句<%@ session.setCharacterEncoding("gb2312");%>
这样就不会出现乱码了
参考技术A pageEncoding="UTF-8"改成gbk试下 参考技术B 把UTF-8改成GBK就好了。 参考技术C utf-8改成gb2312 试试

JSP页面与JSP页面之间传输参数出现中文乱码的解决方案

在学习编程初期JSP与JSP页面之间传输参数大多数都是使用这样的方式

index.jsp?id=*&name=*

这样的传输方式实质上是一种GET传输方式, 那如果出现了中文乱码, 解决方法其实很简单, 可以在接收页面参数的JSP页面加上这样一句代码

......
<%
String id = request.getParameter("id");
String name = request.getParameter("name");
String encodename = new String(name.getBytes("ISO-8859-1"),"utf-8"); 
%>
......

问题解决!

String encodename = new String(name.getByte("iso-8859-1"),"utf-8");

这句代码其实可以算是GET方法的专属的解决编码问题的方法了.



以上是关于JSP中JavaBean中传输数据的乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

jsp+Servlet+javabean 出现乱码问题

在JavaBean中使用jsp动作getProperty时,如何解决中文乱码问题

关于javabean中乱码的疑问

jsp中用javabean读取值出现乱码

为啥jsp页面中传入JavaBean对象里面的中文参数在调试时显示成员变量是乱码?

初识JavaBean以及解决JavaBean中文乱码问题