【问题标题】:How to make Tomcat 8 recognize unicode characters, e.g.: "start of text": 如何让 Tomcat 8 识别 unicode 字符,例如:“文本开头”:
【发布时间】:2017-07-10 04:15:51
【问题描述】:

如何让 Tomcat 8 识别 unicode 字符作为响应?例如。 “文本开头”: 应转换为:(默认情况下,stackoverflow 和 Weblogic 会这样做)。

为什么 Tomcat 不能做同样的事情? 还是应该在我们用来进行调用的生成的 Web 服务客户端中进行配置?

Axis 1.4 的 SAX 解析器在响应中找到  时崩溃,至少 Axis 2 只返回 null。由于我们使用的是 SOAP 消息和 rpc/encoded wsdls,因此我们没有广泛的工具可用于生成我们的 Web 服务客户端。

我将尝试这个想法,实现一个 HTTP 客户端以字符串形式发送和接收数据:Axis 1.4 can't deserialize response

还有什么我可以尝试让它工作的吗?

【问题讨论】:

  • 您可以尝试使用 -Dfile.encoding=UTF-8 启动 java vm 吗?如果这没有帮助,请尝试 -Dfile.encoding=ISO-8859-1。我知道这听起来很奇怪,但我在 issues.apache.org/jira/browse/AXIS-2342 中发现了该信息作为解决方法。也许这对您也有帮助?
  • Tomcat 是一个服务器。客户端读取响应。因此,Tomcat 与它无关。

标签: tomcat java-8 axis2 axis tomcat8


【解决方案1】:

Tomcat 对该字符没有特别的问题。如果您在代码中对该字符进行硬编码,它不会真的失败。

 只是一个 XML/HTML 实体。
它正在对字符 nr 进行编码。 ASCII 表中的 2,即“文本开始”。

看看这里 -- http://www.asciitable.com/

ASCII 表中的前 31 个字符是控制字符,让它们在 web 服务中发送没有多大意义。

要么您必须让 Web 服务不发送这些字符(可能是数据库中的数据错误或代码有问题),要么您必须让客户端(Tomcat?)过滤掉这些字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 2013-05-13
    • 2017-02-27
    相关资源
    最近更新 更多