UTF-8错误的请求

问题描述 投票:1回答:2

我有一个字符串,字符为“Á”(西班牙语),并且对API的请求有一些问题。

通过这种方式,我得到了400错误错误请求

String address = "Ángel Marsa I Becá è";
String encoded = new String(address.getBytes("UTF-8"));
System.out.println(encoded);//�ngel Marsa I Becá è

使用其他方式进行编码,先使用ISO-8859-1,然后使用UTF-8,我不会收到BAD REQUEST 400错误。

byte ptext[] = address.getBytes("ISO-8859-1"); 
String value = new String(ptext, "UTF-8");
System.out.println(value);//?ngel Marsa I Bec? ?

这种方式是否正确编码了UTF8?

这是编码为UTF-8的最佳方法,特别是带有重音符号或带有“ñ”的字符串。

谢谢

java utf-8 encode iso-8859-1
2个回答
1
投票

您可以使用java.net.URLEncoder传递URL中不可接受的字符串。

String s = "Ángel Marsa I Becá è";
String e = URLEncoder.encode(s, "UTF-8");
System.out.println(e);

这看起来像%C3%81ngel+Marsa+I+Bec%C3%A1+%C3%A8

一旦通过网络获得它,您始终可以使用UrlDecoder.decode恢复原始文本。


0
投票

我缺少Content-Type的参数charset = utf-8。

© www.soinside.com 2019 - 2024. All rights reserved.