【问题标题】:Getting a Server's encoding using Java使用 Java 获取服务器的编码
【发布时间】:2011-08-05 17:54:48
【问题描述】:

是否可以通过编程方式获取 Tomcat 使用的编码方案来解码 GET 参数?

我知道您可以强制 Tomcat 使用特定编码,但这是在我无法控制 Tomcat 设置时使用的。我正在考虑通过自己解析查询字符串来获得正确的编码,或者尝试使用 Tomcat 对其进行解码的任何方法重新编码该值,然后使用 UTF-8 对其进行解码以获得正确的字符串。

【问题讨论】:

    标签: java tomcat servlets decode encode


    【解决方案1】:

    http://www.w3schools.com/tags/ref_urlencode.asp 开始,URL 编码是 ASCII 并且可以很容易地反转特殊字符的规则。 GET 中的参数是 URL 编码的。

    如果您谈论的是 GET 本身的值,那么您的问题实际上没有意义(或者我误解了您),因为您将在 Java servlet 中获得一个字符串。该参数将已被解码。您无需担心编码。

    【讨论】:

    • 我知道我可以自己解析。我宁愿看看它是否可以“自动”完成。问题在于解码后的值是错误的,因为它使用 ISO-8859-1 而不是 UTF-8,而且我可能无法控制服务器设置以强制服务器执行 UTF-8 解码。
    【解决方案2】:

    您可以随时尝试执行getCharacterEncoding。虽然有一个保证。如果 server.xml 中的 URIEncoding 属性未更改,您始终可以假定为 ISO-8859-1。如果您获得带有getParameter 的字符串,则检索原始字节并使用UTF-8 编码构造一个新字符串。 URL 总是转义为 UTF-8 文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多