编码转换验证

阅读更多

	String param = req.getParameter("name_startsWith");
		try {
			System.out.println("param1====="+new String(param.getBytes("ISO-8859-1"), "GBK"));
			System.out.println("param2====="+new String(param.getBytes("ISO-8859-1"), "GB2312"));
			System.out.println("param3====="+new String(param.getBytes("ISO-8859-1"), "UTF-8"));
			System.out.println("param4====="+new String(param.getBytes("GB2312"), "ISO-8859-1"));
			System.out.println("param5====="+new String(param.getBytes("GB2312"), "GBK"));
			System.out.println("param6====="+new String(param.getBytes("GB2312"), "UTF-8"));
			System.out.println("param7====="+new String(param.getBytes("GBK"), "ISO-8859-1"));
			System.out.println("param8====="+new String(param.getBytes("GBK"), "UTF-8"));
			System.out.println("param9====="+new String(param.getBytes("GBK"), "GB2312"));
			System.out.println("param10====="+new String(param.getBytes("UTF-8"), "GBK"));
			System.out.println("param11====="+new String(param.getBytes("UTF-8"), "GB2312"));
			System.out.println("param12====="+new String(param.getBytes("UTF-8"), "ISO-8859-1"));
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		


js与后台编码不一致,转换:

js代码:客户端对url进行两次转码(也可能是一次):(str为中文)
参数及url(若是只需参数,就直接在js里面转参数就可以)

var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime();  
url = encodeURI(url);  
url = encodeURI(url);  

servlet服务器段对参数值进行解码:
 
String word = request.getParameter("word");  
word = java.net.URLDecoder.decode(word,"UTF-8");


例子:js:
  /****
       * 厂商自动完成功能
       */


      $(function() {
      	
      	$( "#mediaName_temp" ).autocomplete({			
      		source: function( request, response ) {
      		if(trim(request.term)!=""){
      			//alert("111");
      			$.ajax({
      				url: "/json/selectMedia.json",
      				dataType: "json",
      				data: {
      					featureClass: "P",
      					style: "full",
      					maxRows: 12,
      					name_startsWith: encodeURI(request.term)
      				},
      				success: function( data ) {
      					response( $.map( data.mediaList, function( item ) {
      						return {
      							label:  item.mediaName,
      							value: item.mediaName,
      							id:	item.id
      						}
      					}));
      				}
      			});
      		
      		}	
      		},
      		minLength: 1,
      		select: function( event, ui ) {
      			
      			document.getElementById("mediaId").value=ui.item.id ;
      			document.getElementById("mediaName").value=ui.item.value ;
      			document.getElementById("mediaName_temp").disabled="disabled";
               
      		},
      		open: function() {
      			$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
      		},
      		close: function() {
      			$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
      		}
      	});
      });





 


servlet:



	@RequestMapping("/json/selectMedia.json")
	public ModelAndView selectMedia(HttpServletRequest req,
			HttpServletResponse resp, ModelMap modelMap, Media media) {
		String mediaName = req.getParameter("name_startsWith").trim();
		
		
		
		try {
			mediaName = java.net.URLDecoder.decode(mediaName,"UTF-8");
		} catch (UnsupportedEncodingException e1) {
			
			e1.printStackTrace();
		}  
		media.setMediaName(mediaName);
		List mediaList = mediaService.selectMediaList(media);
		//List adTypeList = mediaDictionaryService.queryMediaDictionaryList("adType");
		
		modelMap.put("mediaList", mediaList);
		//modelMap.put("adTypeList", adTypeList);
		
		return new ModelAndView(jsonView);
	}








你可能感兴趣的:(servlet,java,json)