为什么我添加的中文 调用以后显示的是问号 用了论坛的方法还是不能解决
<%@ page contentType= "text/html;charset=gb2312 "%>
<jsp:useBean id= "fbzw " scope= "page " class= "hr.run.op_fbzw " />
<%@ page import= "com.xuandong.util.* " %>
<%
String userid = (String)session.getAttribute( "id ");
try
{
if(tool.checkperm(userid, "work_l "))
getServletContext().getRequestDispatcher( "/managers/error1.jsp ").forward(request,response);
}catch(Exception e){
System.out.println(e);
}
%>
<%
String mesg = " ";
String submit = request.getParameter( "Submit ");
if (submit!=null && !submit.equals( " ")){
if(fbzw.getRequest(request)){
if(fbzw.insert()){
mesg = "职位提交成功! ";
} else {
mesg = "数据库操作失败! ";
}
}else {
mesg = "对不起,你提交的参数不正确! ";
}
}
%>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html " charset= "gbk ">
<title> 发布新职位 </title>
<!-- calendar stylesheet -->
<link rel= "stylesheet " type= "text/css " media= "all " href= "../Styles/calendar-blue.css " title= "calendar-blue " />
<!-- main calendar program -->
<script type= "text/javascript " src= "../Js/Calendar.js "> </script>
<!-- language for the calendar -->
<script type= "text/javascript " src= "../Js/Calendar-zh.js "> </script>
<!-- the following script defines the Calendar.setup helper function, which makes
adding a calendar a matter of 1 or 2 lines of code. -->
<script type= "text/javascript " src= "../Js/Calendar-Setup.js "> </script>
<script type= "text/javascript " src= "../Js/checkData.js "> </script>
<script language=JavaScript>
<!--
function checkForm()
{
if(form1.dept.value== " ")
{
alert( "请填写招聘部门! ");
form1.dept.focus();
return false;
}
if(form1.jobName.value == " ")
{
alert( "请填写岗位名称! ");
form1.jobName.focus();
return false;
}
if(form1.deptName.value == " ")
{
alert( "请填选择发布区域! ");
form1.deptName.focus();
return false;
}
if(!isPosIntegerStr(form1.xqrs.value))
{
alert( "请检查需求人数是否正确! ");
form1.xqrs.focus();
return false;
}
if(form1.jobAdd.value == " ")
{
alert( "请选择工作地点! ");
form1.jobAdd.focus();
return false;
}
if(form1.salary.value == " ")
{
alert( "请选择薪酬待遇! ");
form1.salary.focus();
return false;
}
if(form1.email.value.indexOf( "@ ") == -1 || form1.email.value.indexOf( ". ") == -1 || form1.email.value== " ")
{
alert( "请检查电子邮件地址是否正确! ");
form1.email.focus();
return false;
}
if(form1.closeDate.value == " ")
{
alert( "请选择截止日期! ");
form1.closeDate.focus();
return false;
}
return true;
}
-->
</script>
</head>
[解决办法]
<body>
<table width= "554 " border= " " align= "center ">
<tr>
<td> 修改职位信息(注意:信息填写得越详细,招聘效果越好) </td>
</tr>
<% if(!mesg.equals( " ")){
out.println(mesg);
}%>
</table>
<form name= "form1 " method= "post " action= "fbxzw.jsp ">
<table width= "554 " border= "1 " align= "center ">
<tr>
<td width= "30% "> <div align= "right "> <strong> * 招聘部门 </strong> </div> </td>
<td width= "80% "> <input type= "text " name= "dept ">
例如:信息中心 </td>
</tr>
<tr>
<td width= "30% "> <div align= "right "> <strong> * 岗位名称 </strong> </div> </td>
<td> <input type= "text " name= "jobName ">
例如:门店店长 </td>
</tr>
<tr>
<td width= "30% "> <div align= "right "> <strong> * 发布所属区域 </strong> </div> </td>
<td> <select name= "deptName ">
<option selected value= " "> --请选择-- </option>
<option value= "zongbu "> 总部 </option>
<option value= "nanjing "> 南京分部 </option>
<option value= "sunan "> 苏南分部 </option>
<option value= "suzhong "> 苏中分部 </option>
<option value= "xuhuai "> 徐淮分部 </option>
<option value= "changzhou "> 常州分部 </option>
<option value= "zhejiang "> 浙江分部 </option>
<option value= "wentai "> 温台分部 </option>
<option value= "luzhong "> 鲁中分部 </option>
<option value= "qingdao "> 青岛分部 </option>
<option value= "henan "> 河南分部 </option>
<option value= "anhui "> 安徽分部 </option>
<option value= "jiangxi "> 江西分部 </option>
<option value= "sichuan "> 四川分部 </option>
<option value= "yunnan "> 云南分部 </option>
</select>
请填写自己所属总部或分部 </td>
</tr>
<tr>
<td> <div align= "right "> <strong> * 需求人数 </strong> </div> </td>
<td> <input type= "text " name= "xqrs ">
单位:人 例如:3 </td>
</tr>
<tr>
<td> <div align= "right "> <strong> 最低学历要求 </strong> </div> </td>
<td> <select name= "zdxl ">
<option selected value= "不限 "> --不限-- </option>
<option value= "高中及以下 "> 高中及以下 </option>
<option value= "中专 "> 中专 </option>
<option value= "专科 "> 专科 </option>
<option value= "本科 "> 本科 </option>
<option value= "硕士 "> 硕士 </option>
<option value= "博士 "> 博士 </option>
</select> </td>
</tr>
<tr>
<td> <div align= "right "> <strong> 要求工作年限 </strong> </div> </td>
<td> <select name= "gznx ">
<option selected value= "0 "> --不限-- </option>
<option value= "1 "> 1年以上 </option>
<option value= "2 "> 2年以上 </option>
<option value= "3 "> 3年以上 </option>
<option value= "5 "> 5年以上 </option>
<option value= "10 "> 10年以上 </option>
<option value= "15 "> 15年以上 </option>
</select>
单位:年 不限表示没有限制 </td>
</tr>
<tr>
<td> <div align= "right "> <strong> * 工作地点 </strong> </div> </td>
<td> <select name= "jobAdd ">
<option selected value= " "> --请选择-- </option>
<option value= "全国 "> 全国 </option>
<option value= "南京地区 "> 南京地区 </option>
<option value= "苏南地区 "> 苏南地区 </option>
<option value= "苏中地区 "> 苏中地区 </option>
<option value= "徐淮地区 "> 徐淮地区 </option>
<option value= "常州地区 "> 常州地区 </option>
<option value= "浙江地区 "> 浙江地区 </option>
<option value= "温台地区 "> 温台地区 </option>
<option value= "鲁中地区 "> 鲁中地区 </option>
<option value= "青岛地区 "> 青岛地区 </option>
<option value= "河南地区 "> 河南地区 </option>
<option value= "安徽地区 "> 安徽地区 </option>
<option value= "江西地区 "> 江西地区 </option>
<option value= "四川地区 "> 四川地区 </option>
<option value= "云南地区 "> 云南地区 </option>
</select>
例如:南京地区 </td>
</tr>
<tr>
<td> <div align= "right "> <strong> 工作方式 </strong>
</div> </td>
<td> <select name= "jobClass ">
<option selected value= " "> --请选择-- </option>
<option value= "全职 "> 全职 </option>
<option value= "兼职 "> 兼职 </option>
<option value= "实习 "> 实习 </option>
</select>
例如:全职 </td>
</tr>
<tr>
<td> <div align= "right "> <strong> * 薪酬待遇 </strong> </div> </td>
<td> <p>
<select name= "salary ">
<option selected value= " "> --请选择-- </option>
<option value= "面议 "> 面议 </option>
<option value= "1000元以下 "> 1000以下 </option>
<option value= "1000-2000元 "> 1000-2000 </option>
<option value= "2000-3000元 "> 2000-3000 </option>
<option value= "3000-4000元 "> 3000-4000 </option>
<option value= "4000-6000元 "> 4000-6000 </option>
<option value= "6000-8000元 "> 6000-8000 </option>
<option value= "8000-10000元 "> 8000-10000 </option>
<option value= "10000元以上 "> 10000以上 </option>
</select>
单位:元/月 </p>
</td>
</tr>
<tr>
<td> <div align= "right "> <strong> 电子邮件 </strong>
</div> </td>
<td> <input name= "email " type= "text " value= "wxhr@126.com ">
与该岗位联系的电子邮件,不填时自动使用单位注册时电子邮件 </td>
</tr>
<tr>
<td valign= "top "> <div align= "right "> <strong> 岗位具体工作描述 <br>
(限200字以内) </strong> </div> </td>
<td> <textarea name= "jobBewrite " cols= "50 " rows= "4 " id= "gzms "> </textarea> </td>
</tr>
<tr>
<td valign= "top "> <div align= "right "> <strong> 招聘要求及条件 <br>
(限200字以内) </strong> </div> </td>
<td> <textarea name= "zpyq " cols= "50 " rows= "4 " id= "zptj "> </textarea> </td>
</tr>
<tr>
<td valign= "top "> <div align= "right "> <strong> 其它可提供的待遇 <br>
(限200字以内) </strong> </div> </td>
<td> <textarea name= "tgdy " cols= "50 " rows= "4 " id= "qtdy "> </textarea> </td>
</tr>
<tr>
<td> <div align= "right "> <strong> *岗位有效期至 </strong> </div> </td>
<td> <input type= "text " name= "closeDate " id= "f_date_c " readonly= "1 " /> <img src= "../images/img.gif " id= "f_trigger_c " style= "cursor: pointer; border: 1px solid red; " title= "Date selector "
onmouseover= "this.style.background= 'red '; " onMouseOut= "this.style.background= ' ' " /> </td>
</tr>
<script type= "text/javascript ">
Calendar.setup({
inputField : "f_date_c ", // id of the input field
ifFormat : "%Y-%m-%d ", // format of the input field
button : "f_trigger_c ", // trigger for the calendar (button ID)
align : "Br ", // alignment (defaults to "Bl ")
singleClick : true
});
</script>
<tr>
<td> <div align= "right "> <strong> 发布状态 </strong> </div> </td>
<td> <select name= "releaseClass ">
<option selected value= "zzfb "> 正在发布 </option>
<option value= "ztfb "> 暂停发布 </option>
</select> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
<center> <input type= "submit " name= "Submit " value= "保存以上数据并发布 " onClick= "javascript:(checkForm()) ">
<input type= "reset " name= "Reset " value= "填写错误清空重填 "> </center>
</form>
</body>
</html>
[解决办法]
过滤器
[解决办法]
不是页面的问题,
你的意思是说,页面上的中文显示不了,
还是从数据库取出数据到页面显示不了?
---------------
要是前者,是字符编码的问题,
后者,加个过滤器类就可以了
[解决办法]
也是一个比较麻烦的问题啊.帮你顶
[解决办法]
通过添加过滤器来解决乱码问题
[解决办法]
我通过这个文件添加中文数据
添加完成后 显示添加的数据 所有的中文都变成问号了
但是如果添加的是数字 显示是正常的
[解决办法]
如果用的tomcat那改一下server.xml文件里面编码方式加上URIEncoding= "GBK "
[解决办法]
过滤器添加方法:
1.在web.xml中插入下面的内容:
<filter>
<filter-name> SetCharacterEncodingFilter </filter-name>
<filter-class> 你的过滤器实现类 </filter-class>
<init-param>
<param-name> encoding </param-name>
<param-value> gb2312 </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> SetCharacterEncodingFilter </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
2.编写过滤器:
public class SetCharacterEncodingFilter implements javax.servlet.Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public SetCharacterEncodingFilter() {
}
/**
* init
*
* @param filterConfig FilterConfig
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter( "encoding ");
String value = filterConfig.getInitParameter( "ignore ");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase( "true "))
this.ignore = true;
else if (value.equalsIgnoreCase( "yes "))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
/**
* doFilter
*
* @param servletRequest ServletRequest
* @param servletResponse ServletResponse
* @param filterChain FilterChain
* @throws IOException
* @throws ServletException
* @todo Implement this javax.servlet.Filter method
*/
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException,
ServletException {
if (ignore || (servletRequest.getCharacterEncoding() == null)) {
String encoding = selectEncoding(servletRequest);
if (encoding != null)
servletRequest.setCharacterEncoding(encoding);
}
filterChain.doFilter(servletRequest, servletResponse);
}
/**
* destroy
*
* @todo Implement this javax.servlet.Filter method
*/
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
}
[解决办法]
开发和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都可以在项目属性中设置。
使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding( "UTF-8 ")。
网上有此filter的源码,Jdon框架源码中com.jdon.util.SetCharacterEncodingFilter
需要配置web.xml 激活该Filter。
在JSP头部声明: <%@ page contentType= "text/html;charset= UTF-8 " %> 。
在Jsp的html代码中,声明UTF-8:
<meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 ">
设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般数据库都可以通过管理设置设定UTF-8
其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。
[解决办法]
需要加过滤器类了,如下:
在web.xml中添加如下代码:
<filter>
<filter-name> Set Character Encoding </filter-name>
<filter-class> org.common.filter.EncodingFilter </filter-class>
</filter>
<filter-mapping>
<filter-name> Set Character Encoding </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
过滤器类的代码如下:
package org.common.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodingFilter implements Filter
{
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding( "GBK ");
chain.doFilter(request,response);
}
public void destroy() {
}
}
[解决办法]
请教大家一下 过滤器代码 该如何添加?
添加到什么地方
大家不要笑话我 因为工作原因 我刚刚学习jsp 公司就让我解手这个问题 所以来请教大家
谢谢~
[解决办法]
过滤器只是一个java类,可以把它当作你项目的公共类,
放在一个common包中,最主要的是把它配置到web.xml中,这样在服务器启动的时候,
就会把这个类加载进去,配置的路径是 /* ,表示对所有的请求都要经过这个类来过滤一下
按照上面说的步骤就完全可以解决了,不需要其他的操作
[解决办法]
我给的例子中是把所有的字符都转换为GBK,你可以改成你所需要的任何编码类型
[解决办法]
楼主试试下面的方法:
中文写入数据库以及从数据库中读出中文如果不经过转换,都会显示出乱码。
所以中文入库需要转换,出库时仍然需要转换。
可把代码保存在一个JSP文件中,在以后需要使用时,只需在当前页面中调用此JSP页面即可
<%@include file= "common/ChineseChange.jsp "%> //调用此JSP文件的代码
或者把此代码写程Bean进行调用。
view plaincopy to clipboardprint?
<!--出库转换-->
<%!
private String GBTocoding(String coding) {
int nError = 0;
String sError = " ";
String temp = " ";
try {
temp = new String(coding.getBytes( "gb2312 "), "iso8859-1 ");
} catch(java.io.UnsupportedEncodingException err) {
sError = err.getMessage();
nError = 1;
} finally {
if(nError == 1)
return " ";
else
return temp;
}
}
%>
<!--入库转换-->
<%!
private String codingToGB(String coding) {
int nError = 0;
String sError = " ";
String temp = " ";
try {
temp = new String(coding.getBytes( "iso8859_1 "), "gb2312 ");
} catch(java.io.UnsupportedEncodingException err) {
sError = err.getMessage();
nError = 1;
} finally {
if(nError == 1)
return " ";
else
return temp;
}
}
%>
[解决办法]
还是不懂
有朋友 可以帮忙配置一下web.xml 和添加一下 过滤器代码嘛?
我的联系方式
QQ:21035445
msn:joke@boy@msn.com
谢谢~
[解决办法]
呵呵,我说的还不够清晰么?
就是建立一个类EncodingFilter ,在web.xml中加上上面说的那几行,把这个类的路径给指正确,
就OK啦!!!
ps:你的msn不对哈,呵呵
[解决办法]
joke_boy@msn.com
一激动写挫了
可以加我 教教我嘛
[解决办法]
该下班了,你先按我说的试试,还不行的话,明天咱们再讨论
[解决办法]
統一設置UTF-8
轉換器也是UTF8
[解决办法]
加过滤器