首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

为什么小弟我添加的中文 调用以后显示的是问号 用了论坛的方法还是不能解决

2012-01-23 
为什么我添加的中文 调用以后显示的是问号 用了论坛的方法还是不能解决%@pagecontentType text/htmlch

为什么我添加的中文 调用以后显示的是问号 用了论坛的方法还是不能解决
<%@   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> &nbsp;&nbsp;要求工作年限 </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> &nbsp; </td>
<td> &nbsp; </td>
</tr>
</table>

<center> <input type= "submit " name= "Submit " value= "保存以上数据并发布 " onClick= "javascript:(checkForm()) ">
&nbsp;&nbsp; <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&amp;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
[解决办法]
加过滤器

热点排行