java请求中文乱码,javaget请求乱码

  java请求中文乱码,javaget请求乱码

  如何解决写爬虫IP受阻的问题?立即使用。

  出现的问题:

  通过get请求向服务器发送请求时,如果请求参数是中文,服务器收到的参数就是乱码。

  乱码的原因分析及解决方案:

  1.关于解码和编码

  代码:“中等”1110001

  解码:110001 中间

  加扰:在编码和解码的过程中使用不同的字符集。

  2.Web应用程序中的字符编码和解码问题

  (1)请求流程:

  1获取请求

  浏览器是用UTF 8编码的,所以应该在服务器上用UTF 8解码。

  因为GET请求参数是附加在URL地址上的,所以URL地址的解码字符集应该是统一的。

  解决方案:

  在tomcat配置文件server.xml中找到第一个连接器,并添加以下属性URIEncoding=UTF-8

  2发布请求

  在获取请求参数之前执行:request . setcharacterencoding( UTF-8 );

  (2)响应过程

  (1)指定响应数据的编码字符集。

  (2)告诉浏览器应该使用什么字符集来解码响应数据。

  1Tomcat服务器会根据解码字符集自动设置编码字符集。

  2设置编码字符集:告诉浏览器当前响应数据的内容类型:response . setcontenttype( text/html;charset=UTF-8 );需要注意的是,需要在response.getWriter()中;之前设置,否则无效。

  建议:

  所有过滤器仅适用于POST请求。在jsp页面中设置字符编码方法仅适用于提交表单时的POST请求,但不能设置GET请求的字符编码。

  GET请求使用默认的编码方式,所以对于GET请求,需要在server.xml文件中设置URIEncoding=UTF-8 ,重启TOMCAT解决中文乱码问题。

  但是,不建议在href超链接请求或GET请求中传递中文参数。

  此外,在传输参数时,使用统一的编码方法来发送和接收中文的传输部分。

  reply.jsp?title= Java . net . URL encoder . encode(keywords)然后使用keywords=newstring(request . getparameter( keywords )。接收参数页中的getbytes( 8859 _ 1 );虽然这种方法暂时解决了中文乱码的问题,

  但在后期维护和部署到其他服务器时,仍可能出现中文乱码,不建议使用。

  对于Post请求,只需在Servlet或jsp中编写以下代码,解决从表单传入的中文乱码问题。

  request . setcharacterencoding( utf-8 );了解:

  对于Get请求,不能使用上述处理方法,因为请求参数将被追加到地址栏的URL中。应该是这样的:

  string str=request . getquery string();

  //使用URLDecoder解码字符串

  string str 1=Java . net . URL decoder . decode(str, utf-8 );

  string[]parastring=str 1 . split();

  //paraStrings[0]是第一个参数,依此类推.

  for(字符串paraString:paraString)

  {

  string[]name value=parastring . split(=);

  //nameValue[0]是表单的名称,nameValue[1]是表单名称的对应值。

  }另一种方法是获取请求参数,然后对请求参数值进行重新编码,即先将其转换为字节数组,再将字节数组重新解码为字符串。

  string str=request . getparameter( name );

  byte[]bytes=str . getbytes( ISO-8859-1 );

  String name=新字符串(字节, utf-8 );结论:传递中文参数时,最好使用POST request提交。不同的服务器设置可能有不同的编码方法,不同的操作系统可能有不同的编码方法。

  推荐:java基础教程以上是java中乱码请求的解决方案的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: