繁体   English   中英

在JSF中使用国际化时遇到的问题

[英]Problems while using Internationalization in JSF

尝试在JSF中实现国际化时遇到问题。 当我在UI页面中输入某些数据(使用英语以外的其他语言)时,该值作为加密值存储在我的Managed Bean变量中(甚至无法确定该格式)。 在UI页面中输入值后,我无法获取该值。 我需要在MySql数据库中存储不同语言的值(来自JSF页面)。 但是如上所述,我正在努力获取Managed Bean中的Input值。 请指导我这样做。

提前致谢

加密? 你在开玩笑。 您最有可能实际上是指Mojibake

为了避免Mojibake,您需要确保在生成和使用字符时,在整个应用程序中使用相同的字符编码。 如今,如果您想统治世界,那么UTF-8是理智的选择。 JSF2一直一直默认为UTF-8。 因此,您的问题有些奇怪。

也许您实际上在使用PrimeFaces? 触发ajax请求时,会破坏默认的UTF-8字符编码。 在这里回答那部分,您需要创建一个servlet过滤器。

还是该值实际上是正确的,但是您正在将该值打印到完全不支持UTF-8的输出中,因此您错误地确定了问题的原因? 例如,通过Eclipse控制台中的System.out.println() 您需要通过“ 窗口”>“首选项”>“常规”>“工作区”>“文本文件编码”进行配置,如此处所述

或者,您可能通过<f:view encoding>显式地将JSF2编码强制更改为其他内容,例如ISO-8859-1 您不应该这样做,请从<f:view>删除encoding属性并将其保留为默认值。

或者很可能您的MySQL数据库/表编码根本不是UTF-8,但这与您描述的问题症状不符,或者您必须省略了实际打印从数据库检索到的值的部分,而不是从表单提交中检索的值。

无论如何,您需要了解有关Java EE Web应用程序中字符编码的所有信息,包括所有可能出现的问题和解决方案,并以Unicode进行了详细说明-如何正确处理字符?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM