【问题标题】:How to encode special characters for a POST with Spring/Roo如何使用 Spring/Roo 为 POST 编码特殊字符
【发布时间】:2010-04-09 16:37:36
【问题描述】:

我正在使用 Spring/Roo 作为应用服务器,并且需要能够发布一些特殊字符。具体来说,像日元符号或欧元符号之类的字符。当我在服务器上收到这些字符并在控制台中显示它们时,它们显示为“?”。如何正确编码和接收它们?

【问题讨论】:

    标签: java url encoding post special-characters


    【解决方案1】:

    尝试将src/main/resources/META-INF/spring/database.properties 配置为:

    database.url=jdbc:mysql://[YOUR_DB_SERVER]:3306/[YOUR_DB_NAME]?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
    

    【讨论】:

      【解决方案2】:

      这里有几个可能的故障点。

      首先,我会检查控制台是否支持相关字符:

      • 如果JVM使用的默认编码不支持字符,会被System.out转成问号
      • 如果控制台字体不支持字符,它们将无法正确呈现
      • 如果控制台使用与System.out 不同的编码解码字节,则字符将无法正确显示

      不要尝试将字符打印为文字,而是转换为 int 并打印十六进制值 - 然后对照 Unicode charts 检查该值。

      浏览器和服务器之间也可能发生有损或不正确的转换。理想情况下,服务器应该使用 UTF-8 进行编码和解码。如果浏览器对数据进行编码时使用的编码方式不支持字符,则会进行有损编码;浏览器通常会根据服务器为 GET 请求发送的编码(或者很少来自form attribute)来选择编码。检查与您的数据一起发送的Accept-Charset header(您可以使用FirebugFiddler 之类的东西来执行此操作)。我对Roo一无所知,但肯定有一些机制可以配置编码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 2011-12-28
        相关资源
        最近更新 更多