我使用@FormUrlEncoded发送到服务器。当我向服务器发送字符串时,我得到如下请求体
Content-Length: 14
Authorization:
nick=%E3%85%8A
所以我找到了加法器。拦截器
val requestBuilder = original.newBuilder()
.addHeader("Authorization",token)
.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
.url(originalHttpUrl)
ApiInterface接口
@FormUrlEncoded
@POST("nickCheck")
fun checkNickName(
@Fiel("nick") nick: String
) :Call<NickCheckResultData>
但它不起作用。英语和数字都可以,但不是我的语言。如何修复它?我也试过设置-
UTF-8没有问题。
注释@FormUrlEncoded意味着您发送的内容将是URL编码的,这就是这里发生的事情。
当字符串被url编码时,它只会保持不变,在url中有效的字符,就像你观察“英语和数字都可以”。
正如您在Android文档中看到的:“字母数字字符“a”到“z”、“a”到“z”以及“0”到“9”保持不变。”因为它们是URL中的有效字符。
但是韩语字符对于url无效,所以它们被编码(转换),这就是这里发生的事情。
您必须在服务器中执行的操作是解码接收到的编码字符串。例如在PHP中:urldecode(“ㅊ") 将生成您的原始字符串:”ㅊ"
您还可以删除注释@FormUrlEncoded,或者使用带有@body注释的HTTP请求正文发送数据。查看改装文档以了解有关如何进行改装的更多信息。
我有一个jsp文件,在那里我收集表单值,并通过jQuery Ajax将其发送到strut 2 action class。 我的Ajax函数看起来像 当我解码并提醒它的文本我正确编码和解码。 当我通过ajax将其发送到struts2时,它会产生问题。 我已经检查了Interceptor中的值它显示值??????? 拦截器 在我的jsp文件中,我将内容类型设置为UTF-8,在ajax中,我也检查了内容
控制台输出中的西里尔符号显示不正确。Jenkins正在Windows 7上运行Tomcat/8.5.11 Jenkins属性显示: file.encoding cp1251 sun.jnu.encoding cp1251 sun.stderr.encoding cp866 sun.stdout.encoding cp866 解决了:我在bin文件夹中创建了文件setenv.bat并设置java_o
问题内容: 我有一个PHP脚本,名为: http://cyber- flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: 如您所见,在适当的字符位置上有很多“忙碌”。我想做的是以某种方式显示此内容,以便人们在浏览器中看到正确的UTF-8字符。 您可以将其封装在HMTL标签中并以元UTF-8编码进行设置,但是由于将从该脚本
我使用的API使用授权方案,该方案需要设置特殊的“X-Authoration”标头来验证请求。例如,此Retrofit设置非常适合身份验证令牌为的用户: 我缓存了用户的X-Authorization令牌,所以我可以访问它,但是,我不能在@Headers声明中删除它。 我在这里得到一个编译错误: 有什么办法可以绕过这个吗?
问题内容: 我正在尝试从http://api.freebase.com/api/trans/raw/m/0h47检索数据 正如您在文本中看到的那样,这里有一些唱歌: 。 当我尝试从页面获取源代码时,我会听到带有诸如此类的文字。 到目前为止,我已经尝试使用以下代码: 我究竟做错了什么? 我的整个代码: 问题答案: HTML页面采用UTF-8,并且可以使用阿拉伯字符等。但是Unicode 127以上的
问题内容: 下面是我的代码,它打算获取两个.ckl文件,比较两个文件,添加新项目并创建一个新的合并文件。该程序在Netbeans中运行时可以正确执行,但是,当执行.jar时,该程序似乎未使用UTF-8编码文件。我对编程很陌生,想知道在什么地方或如何执行这种编码? **我删除了Swing代码和其他行,以便仅显示我的方法,该方法完成所有比较和合并。 问题答案: Java具有广泛的,内容丰富的文档。保留