日期:2014-05-20  浏览次数:20796 次

今晚有高手在么,快进来 再线等。



我们做网页的时候   如果源代码中的是   中文
浏览器回给解释成中文     “中文”   两个字符,请问这样的对应关系或者说原理是什么。  

而且如果你的   页面设置了  
<%@   page   contentType= "text/html;   charset=iso_8859-1 "%>

那么你在页面   form   里面提交的   中文字符会被编码成为   &#   加   五个数字加分号   的形式,我接受到   这样的提交结果后怎样处理才能式正确的中文。  

向大家请教了




------解决方案--------------------
编码转换以下就可以了
String s=new String(Request.getParameter( "??? ").getBytes( "iso-8859-1 "));
------解决方案--------------------
编码问题
------解决方案--------------------
编码转换

------解决方案--------------------
Request.getParameter( "??? ").getBytes( "iso-8859-1 ")
解决就可以了。
------解决方案--------------------
编码问题
要么String s=new String(s.getBytes( "iso-8859-1 "), "GBK ");
或者写个FILTER来解决编码问题 后者比较好

------解决方案--------------------
给你两个转换的工具类
页面与页面之间的
public class ParamUtil {
/**
* 获得request中指定名称的参数值,若有中文乱码问题请增加转码部分
*
* @param request
* ServletRequest对象
* @param paramName
* 参数名称
* @return 如果该变量值存在则返回该值,否则返回 " "
*/
public static String getParameter(ServletRequest request, String paramName) {
String temp = request.getParameter(paramName);
if (temp != null && !temp.equals( " ")) {
// 若有中文问题,请将下面语句注释
try {
temp = new String(temp.getBytes( "8859_1 "), "GB2312 ");
} catch (Exception e) {
return " ";
}
return temp;
} else {
return " ";
}
}

/**
* 获得request中的int型参数值
*
* @param request
* ServletRequest对象
* @param paramName
* 参数名称
* @param defaultNum
* 默认值,如果没有返回该值
* @return 如果该参数值存在则返回其转换为int型的值,否则返回defaultNum
*/
public static int getIntParameter(ServletRequest request, String paramName,
int defaultNum) {
String temp = request.getParameter(paramName);
if (temp != null && !temp.equals( " ")) {
int num = defaultNum;
try {
num = Integer.parseInt(temp);
} catch (Exception ignored) {
}
return num;
} else {
return defaultNum;
}
}
}

页面到数据库的 我用的是过滤器
public class EncodingFilter extends HttpServlet implements Filter {

private static final long serialVersionUID = 1L;

/* 过滤器引用 */
private FilterConfig filterConfig = null;

/* 字符集变量 */
private String charSet = null;

/* 过滤器转换字符集 */
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
try {
/* 获得应用程序配置的字符集 */
charSet = (String) filterConfig.getInitParameter( "charSet ");

/* 设置Http字符集的请求为系统的默认字符集 */
HttpServletRequest req = (HttpServletRequest) request;
req.setCharacterEncoding(charSet);

/* 获得Http的响应 */
HttpServletResponse res = (HttpServletResponse) response;

/* 转发道请求的资源 */
chain.doFilter(req, res);