当前位置: 首页 > 面试题库 >

URL解码:Java中的UnsupportedEncodingException

祁永嘉
2023-03-14
问题内容

我从文档中了解到,仅当我将错误的编码指定为URLDecoder.decode(String,String)方法的第二个参数时,才会引发UnsupportedEncodingException。是这样吗?我需要知道可以引发此异常的情况。

基本上,我的其中一个功能中包含以下代码段:

if (keyVal.length == 2) {
    try {
        value = URLDecoder.decode(
            keyVal[1],
            "UTF-8");
    } catch (UnsupportedEncodingException e) {
          // Will it ever be thrown?
    }
}

由于我明确提到“ UTF-8”,因此有什么方法可以引发此异常?我需要在catch块中做任何事情吗?或者,如果我的理解是完全错误的,请告诉我。


问题答案:

除非您的JVM发生了根本性的故障,否则它不会发生。但我认为您应该这样写:

try {
    value = URLDecoder.decode(keyVal[1], "UTF-8");
} catch (UnsupportedEncodingException e) {
    throw new AssertionError("UTF-8 is unknown");
    // or 'throw new AssertionError("Impossible things are happening today. " +
    //                              "Consider buying a lottery ticket!!");'
}

这样做的代价是几个字节的代码“永不”执行,以及一个永远不会使用的String文字。这是一个很小的代价,可以防止您误读/误解了Javadocs(在这种情况下您没有…)或规格可能会更改(在这种情况下它们不会…)



 类似资料:
  • 问题内容: 我看到在6 中已弃用。 我有以下字符串: 我应该如何在Java 6中对其进行解码? 问题答案: 现在,您需要指定字符串的字符编码。 根据 页面上的信息: 注意:万维网联盟建议书指出应使用UTF-8。不这样做可能会导致不兼容。 以下应该为您工作: 请在下面查看Draemon的答案

  • 本文向大家介绍PHP中的URL解码,包括了PHP中的URL解码的使用技巧和注意事项,需要的朋友参考一下 可以使用内置的“ urldecode ”功能来完成URL解码。这将返回编码数据。 urldecode函数的语法 它采用单个参数($input),它是要解码的URL。如果解码成功,则返回解码后的字符串- 示例 在上面的代码行中,“ urldecode”函数接收原始(编码字符串)并返回字符串的解码值

  • 问题内容: 在Java中,我需要使用HTTP Post将请求发送到服务器,但是如果URL的参数中包含一些特殊字符,它将在Exception下面抛出 java.lang.IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符-对于输入字符串:“&’” 发送数据的代码 在服务器端,我使用以下代码读取信息 代码可以正常工作,但是如果我输入一些特殊字符,

  • 作为Python的新手,我已经花了很多时间。 我怎么能解码这样的URL: 到python 2.7中的这个: 返回的内容非常难看。 仍然没有解决办法,任何帮助都是感激的。

  • 问题内容: 在Go中编码和解码整个URL的推荐方法是什么?我知道的方法和,但他们似乎并没有被正是我期待的。具体来说,我正在寻找JavaScript 和之类的方法。 谢谢。 问题答案: 您可以使用net / url 模块进行所有想要的URL编码。它不会分解URL各个部分的单独编码功能,您必须让它构造整个URL。斜视了源代码后,我认为它做得很好并且符合标准。 这是一个示例(游乐场链接) 哪些印刷品

  • 本文向大家介绍Java中URL传中文时乱码的解决方法,包括了Java中URL传中文时乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.getParameter取出是出现乱码的问题。 解决办法 1、