从Java字符串转换为Windows-1252格式

从Java字符串转换为Windows-1252格式,java,android,encoding,Java,Android,Encoding,我想发送一个URL请求,但URL中的参数值可以使用法语字符(例如è)。如何将Java字符串转换为Windows-1252格式(支持法语字符) 我目前正在这样做: String encodedURL=新字符串(unencodedUrl.getBytes(“UTF-8”),“Windows-1252”) 然而,它使: param=stationconnection extèrieur进入param=stationconnection extèrieur 我该如何解决这个问题?有什么建议吗 编辑以进一

我想发送一个URL请求,但URL中的参数值可以使用法语字符(例如è)。如何将Java字符串转换为Windows-1252格式(支持法语字符)

我目前正在这样做:

String encodedURL=新字符串(unencodedUrl.getBytes(“UTF-8”),“Windows-1252”)

然而,它使:
param=stationconnection extèrieur
进入
param=stationconnection extèrieur

我该如何解决这个问题?有什么建议吗

编辑以进一步澄清:

用户从下拉列表中选择值。当语言为法语时,下拉列表中的值有时包括法语字符,如“è”。当我向服务器发送这个请求时,它失败了,说它无法破译请求。我必须弄清楚如何以支持法语字符的不同格式(最好是Windows-1252)发送“è”。我已选择以Windows-1252发送。服务器将接受此格式。我不想替换每个字符,因为我可能会丢失一个特殊字符,然后服务器将抛出一个异常

尝试使用

String encodedURL = new String (unencodedUrl.getBytes("UTF-8"), Charset.forName("Windows-1252"));
用于将参数值编码为应用程序/x-www-form-urlencoded数据:


请参阅以获取详细的解释。

根据麦克道尔的建议,我尝试了以下操作:

URLEncoder.encode(“stringValueWithFrechCharacters”,“cp1252”)
但它工作得并不完美。我用
HTTP.ISO_8859_1
重新命名了
“cp1252”
,因为我相信Android还不支持Windows-1252。它允许ISO_8859_1,阅读后,它支持大多数法语字符,但“Œ”、“œ”和“Ÿ”除外

因此,这样做使它起作用:

URLEncoder.encode(frenchString, HTTP.ISO_8859_1);

很好用

你的问题没有道理。完全也许你想知道查询参数?也许你需要解释你想做什么,因为如果你试图发送一个带有这些值的请求,按照@Matt Ball的解释进行URL编码是有意义的。我现在已经添加了更多关于我的问题的信息。请让我知道这是否有帮助。我得到以下错误:
构造函数(byte[],Charsest)未定义
对不起,这是一个打字错误*
构造函数(byte[],Charset)未定义
我必须用\u00e8替换特殊的e字符,然后再将其传递到cp1252。这不是违背了目的吗?Unicode转义序列
\u00e8
只是用字符串文字编写è的一种替代方法,以避免出现错误。
URLEncoder.encode(frenchString, HTTP.ISO_8859_1);