【问题标题】:Unable to decode russing string with encodeURIComponent and java.net.decode无法使用 encodeURIComponent 和 java.net.decode 解码 russing 字符串
【发布时间】:2013-06-18 21:09:03
【问题描述】:

我有一个俄语字符串"этикетка"。这需要发送到 Web 服务,在发送到 Web 服务之前,我使用 encodeURIComponent 对字符串进行编码,它给了我:

'%D1%8D%D1%82%D0%B8%D0%BA%D0%B5%D1%82%D0%BA%D0%B0'

在 Web 服务端接收字符串并使用以下代码对其进行解码:

String strLbl = java.net.URLDecoder.decode(label);

但我没有正确获取字符串。它失去了格式,我得到ѿтикетка。 您能否建议我如何克服这个问题或发送俄语字符串的理想方式是什么

感谢和问候

【问题讨论】:

标签: java javascript encoding utf-8 urlencode


【解决方案1】:

正如 NULL 给出的链接中所解释的,decode(string) 现在已弃用,取而代之的是 decode(string, encoding)

我猜编码和解码方法使用的不是同一个页面代码。

您是否尝试在这两个过程中强制使用 UTF-8?

【讨论】:

    【解决方案2】:

    我误解了你的问题是它的格式。

    在 JavaScript 中使用decodeURIComponent 解码 url 编码的字符串:

    > decodeURIComponent('%D1%8D%D1%82%D0%B8%D0%BA%D0%B5%D1%82%D0%BA%D0%B0')
    "этикетка";
    

    【讨论】:

    • 不,我没有在浏览器中解码它。我想用java代码解码它,因为它调用了web服务。我正在使用 java.net.decode(label) 但它没有正确解码它。原始字符串:этикетка 解码后我得到:ѿтикетка
    • 我认为他在问如何在服务器端正确解码字符串,但如果我错了,请纠正我。
    • URI 类没有解码已编码字符串的方法。你能详细说明如何使用 URI 类来做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多