【问题标题】:Character encoding issues on webspherewebsphere 上的字符编码问题
【发布时间】:2013-08-13 20:45:47
【问题描述】:

我在两个应用程序服务器(websphere 8.0.0.3)中部署的应用程序存在以下问题。

这些服务具有相同的配置文件(为了确定,我曾导出一个配置文件并将其导入第三个应用程序服务器),并且在读取和显示以 iso8859-7 编码的文件时遇到问题。一个应用程序服务器正确显示它们,而另一个应用程序服务器显示文件中存在非 ascii 字符的 qustionmarks。其他应用程序服务器在正确显示它们方面没有问题。因为我怀疑问题不是来自 websphere,而是操作系统问题(在所有情况下都是 unix SLES),所以我已经从一台服务器导出了配置文件并将其安装在第三台服务器上,一切似乎都可以正常工作很好。

为了解决这个问题,我部署了一个简单的 servlet,显示 jvm 的默认字符集。有问题的显示 US-ASCII ,好的显示 UTF-8 。以运行应用程序服务器的用户身份在 unix 终端中运行语言环境,在两台机器上都将 lang 设置为 en_US.UTF8。

我想补充的最后一件事是,应用程序还使用带有 log4j 绑定的 slf4j 写入日志文件。在有问题的服务器上,日志文件是 ASCII,而在好的服务器上是 UTF-8。因为很明显在日志中记录 iso8859-7 字符,所以显示问号 (?) 而不是实际字符。

我的问题是我应该继续寻找 websphere 中的错误配置问题还是操作系统设置的问题

提前谢谢你

瓦西里奥斯·米尔纳基斯

【问题讨论】:

  • 两台机器上的 websphere 启动脚本可能存在差异。 locale 在两台机器上都显示 en_US.UTF8 的事实并不一定意味着 websphere 是以该语言环境启动的;例如,如果在非交互模式下启动,shell 会跳过读取某些配置文件。

标签: utf-8 character-encoding ascii iso-8859-1


【解决方案1】:

websphere 是否在不同的操作系统上运行?

您可以通过添加这些 JVM 参数来强制 WebSphere 使用 UTF-8

-Dclient.encoding.override=UTF-8
-Dfile.encoding=UTF-8

参考:

http://www-01.ibm.com/support/docview.wss?uid=nas8N1014138 http://www-01.ibm.com/support/docview.wss?uid=swg21593033

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多