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

标签 java android encoding

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

我目前正在这样做:

StringencodedURL = new String(unencodedUrl.getBytes("UTF-8"), "Windows-1252");

但是,它使得: 将 param=Stationnement extèrieur 转换为 param=Stationnement extérieur

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

编辑以进一步说明:

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

最佳答案

使用URLEncoder将参数值编码为 application/x-www-form-urlencoded 数据:

 String param = "param="
              + URLEncoder.encode("Stationnement extr\u00e8ieur", "cp1252");

参见here以获得扩展的解释。

关于java - 从 Java 字符串转换为 Windows-1252 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531773/

相关文章:

java - 根据时间窗口对元素进行排序

android - SwipeRefreshLayout 没有停止刷新

android - 如何在 Android 中设置 IntentService 的优先级

Xcode 不断猜测和解释错误的编码

c# - 在c#中将cp1252字符串编码为utf-8字符串

Java迭代: Hashtable vs HashMap

java - 父类(super class)什么时候没有默认构造函数?

java - ViewPager nullPointerException 错误

android - 任务 ':app:minifyReleaseWithR8' 执行失败

java - Java 中的字符串转码