gpt4 book ai didi

java - 如何解决在 JSF 和 Primefaces 中使用标题的奇怪字符时的编码问题

转载 作者:行者123 更新时间:2023-12-01 14:48:29 27 4
gpt4 key购买 nike

我在编码值时遇到麻烦。我正在开发一个包含西类牙语内容的网页,它使用 ó、á、è 等标题或 ñ 等字符。然后,当我按下按钮保存值时,我猜按钮的 ajax 事件没有采用编码,我添加了 encoding='ISO-8859-1',并且它起作用了。但是我对 primefaces 中的国家/地区也有一个自动完成功能,这些国家/地区也使用 ajax 事件来处理信息,并且对于该字段,编码不起作用,然后在添加 encoding='ISO-8859-1' 之前工作了。好吧,当解决一个问题时,另一个就会失败,反之亦然。

碰巧我需要国家咨询各州并列出它们。

网页代码:

<p:autoComplete id="pais" value="#{personal.pais}"   
completeMethod="#{personal.listPaises}" forceSelection="true" required="true" effect="fade" scrollHeight="400"
var="p" itemLabel="#{p}" itemValue="#{p}" requiredMessage="Es necesario seleccionar país" label="País" validator="#{personal.validatePaises}" >
<p:column style="width:80%" >
#{p}
</p:column>
<p:ajax event="itemSelect" update="departamento" />
</p:autoComplete>

Java 代码:

public void setPais(String pais) {
int codPais = pDao.getPaisCod(pais);
departamentosList = pDao.listDepatamentosByPais(codPais);
this.pais = pais;
}

例如,如果我选择España作为jsf形式的国家/地区,则在bean中将被视为Espa±a

我需要统一编码。

非常感谢。

最佳答案

您应该只使用 UTF-8,它将支持任何字符,更重要的是,它是所有东西都有共同点的唯一编码。通常有些东西只能使用 UTF-8,例如许多 JSON 实现。如果情况并非如此,JSON 无论如何都无法支持 ISO-8859-1。

例如,primeface 的 Ajax 使用 jQuery.param,它使用 encodeURIComponent,它使用 URL 编码 based on UTF-8

所以如果你想统一编码,UTF-8是你唯一的选择。

顺便说一句,“使用 UTF-8”,我的意思不仅仅是将 UTF-8 放在看似正确的随机位置,而是实际上确保 UTF-8 是项目中各处的声明和物理编码。

关于java - 如何解决在 JSF 和 Primefaces 中使用标题的奇怪字符时的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15139713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com