我用android写http请求 HttpGet request = new HttpGet(url); 但是这个URL中有中文。如果传过去那么服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用android写http请求 HttpGet request = new HttpGet(url); 但是这个URL中有中文。如果传过去那么服务器相关的知识,希望对你有一定的参考价值。

那边就会有乱码,请问我这边怎么转码发过去让服务器接收到还是中文

有两个方法,尝试下
URLEncoder.encode("");
URLDecoder.decode("");

先ENCODE完后,接收了再DECODE,中文筹码的问题应该就可以解决了~追问

我的这个URL是要传到服务器那边,但是服务器那边我是不能改代码的

追答

那你就只能发送的时候加上你的编码类别,一个个试,试到和服务器那边同样的编码~

new String(byte[] bytes, Charset charset)

Charset
描述

US-ASCII 7 位 ASCII 字符,也叫作 ISO646-US、Unicode 字符集的基本拉丁块
ISO-8859-1 ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1
UTF-8 8 位 UCS 转换格式
UTF-16BE 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序
UTF-16LE 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序
UTF-16 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识

试试吧,不能改服务器端的代码很郁闷的~

参考技术A 你是在虚拟机上面运行的吧,要转换成Unicode字符码,和正则表达式一样的
在真机上测试应该不会有这个问题吧,我记得URI有两个方法可以用的,一个是decode,一个是htmldecode还是啥来的

以上是关于我用android写http请求 HttpGet request = new HttpGet(url); 但是这个URL中有中文。如果传过去那么服务器的主要内容,如果未能解决你的问题,请参考以下文章

Cordova - 为啥 $http get 请求在 android 设备上失败但在 chrome 上工作

Android URLConnection发送Get请求 HttpGet封装

Android 2.3.3 中的 Http 获取请求

androidpost添加到请求头

HttpGet或HttpPost 请求报400错误

在 kotlin (Android ) 中发送获取请求