项目中的乱码问题

(一):get方法提交
1:客户端提交时
在提交前,url将字符串拼接后,先对url进行编码后,再传到服务器。在编码时,不用的浏览器的编码默认格式不同,一般中文的默认为gbk,将提交的信息URLEncode后,再安iso-8859-1的编格式转换成二进制随着请求头发送出去
2。服务器端(tomcat)是如何将数据获取到进行解码的。
第一步是先把数据用iso-8859-1进行解码,tomcat获取数据的是ASCII范围内的请求头字符,其中的请求url里面带有参数数据,如果参数中有中文等特殊字符,那么目前还是URL encode后的%XY状态。通常大家都是request.getParameter("name")获取参数数据,我们在request对象或得的数据都是经过解码过的,而解码过程中程序里是无法指定,request.setCharacterEncoding("字符集")可以指定解码方式,对于get方法是无能为力的。用什么编码方式解码数据的呢,这是tomcat的事情了,默认缺省用的是iso-8859-1,这样我们就能找到为什么get请求带中文参数为什么在服务器端得到乱码了,原因是在客户端一般都是用UTF-8或GBK对数据URL encode,这里用iso-8859-1方式URL decoder显然不行,在程序里我们可以直接
new String(request.getParameter("name").getBytes("iso-8859-1"),"客户端指定的URL encode编码方式")
tomcat设置编码格式:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
(二):post方法提交
1.客户端(浏览器)在post方法里所要传送的数据也要URL encode,在form所在的html文件里如果有段<meta http-equiv="Content-Type" content="text/html; charset=字符集(GBK,utf-8等)"/>,那么post就会用此处指定的编码方式编码。
作用:1.是为了让浏览器知道用什么字符集来对网页解释 2.指定form表单的post方法提交数据的URL encode编码方式。对于get方法来说,浏览器对数据的URL encode的编码方式是有浏览器设置来决定,而post方法,开发人员可以指定。
2。如果用tomcat默认缺省设置,也没做过滤器等编码设置,那么他也是用iso-8859-1解码的,但是request.setCharacterEncoding("字符集")可以派上用场。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android Studio导入Eclipse项目后,如果遇到码的问题,可以按照以下步骤进行解决: 1. 修改项目根目录下的build.gradle文件。可以参考已经可以成功运行的项目的build.gradle文件进行修改。主要是修改sdk的版本号。由于Eclipse项目采用的是GBK编码,而Android Studio使用的是UTF-8编码。只是单纯地修改文件编码方式可能无法解决问题。在build.gradle文件加入以下代码:android {compileOptions.encoding = "GBK"}。这样可以解决问题。\[2\] 2. 打开Android Studio,点击Import project。如果已经进入项目页面了,可以点击File->New->Import Project。然后选择需要导入的Eclipse项目。选择项目后,可以指定转换后的项目路径和名称。导入后,系统会自动同步编译环境。此时需要根据已经可以在Android Studio成功运行的项目进行部分文件的修改。\[3\] 通过以上步骤,你应该能够解决Android Studio导入项目码的问题。 #### 引用[.reference_title] - *1* [android studio导入eclipse项目问题怎么解决](https://blog.csdn.net/weixin_30868873/article/details/117588466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Android Studio导入Eclipse项目](https://blog.csdn.net/weixin_42927372/article/details/117780559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值