js提交表单中包含中文参数值,request请求参数正常,服务器端接收出现乱码解决思路

Servlet端
	/**
	 * 将页面中传递过来的参数进行转码操作,避免出现中文乱码现象,此方法可泛型化
	 */
	private AdvertPosition transcoder(HttpServletRequest request){
		
		AdvertPosition advertPosition = new AdvertPosition();
		try {
		Enumeration e = request.getParameterNames();
            	      while (e.hasMoreElements()) {
                      String name = (String) e.nextElement();
                      String value = "";
                      String targetString = "advertPosition.";
                      System.out.println("name="+name);
                 	 if(StringUtils.isNotBlank(name)){
                	 	//进行编码转换
                	  	value = new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8").trim();
                      		BeanUtils.setProperty(advertPosition, name.substring(name.indexOf(targetString)+targetString.length()),value);
                  	}
             	      }
		} catch (Exception e) {
			logger.error("编码转换出现异常", e);
		}
		return advertPosition;
	}

HTML中部分代码如下:

<tr>
	<td class="td_label">广告位特征值:</td>
	<td class="td_input">
		<input id="eigenValue" name="advertPosition.eigenValue" type="text" class="e_input" οnfοcus="this.className='e_inputFocus'" οnblur="this.className='e_input'" value="${advertPosition.eigenValue}" maxlength="80" />
		<input id="id" name="advertPosition.id" type="hidden" value="${advertPosition.id}"/>
	</td>
	<td class="td_label">广告位名称:</td>
	<td class="td_input">
		<input id="positionName" name="advertPosition.positionName" type="text" class="e_input" οnfοcus="this.className='e_inputFocus'" οnblur="this.className='e_input'" value="${advertPosition.positionName}" maxlength="80"/>	
	</td>
	<td class="td_label">折扣:</td>
		<td class="td_input">
			<input id="discount" name="advertPosition.discount" value="${advertPosition.discount}" type="text" class="e_input" οnfοcus="this.className='e_inputFocus'" οnblur="this.className='e_input'" maxlength="80"/>	
		</td>
	</tr>
思路,通过遍历参数列表中的值,对提交表单后传递到后台的所有参数进行转码操作。

注:此方式虽然能简化部分java代码,但代码整体运行效率会受到影响。

        

new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8").trim();
此种转码方式仅适用于通过firebug观察request请求参数中包含中文正常,而通过服务器端获取参数值出现乱码问题,如request请求参数中所包含的中文本身已出现乱码,请先尝试解决request中的乱码问题,再进行以上操作,具体firebug使用,请自行google


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值