0

我在编码值方面遇到了麻烦。好吧,我正在开发一个包含西班牙语内容的网页,它使用诸如 ó、á、è 等标题或诸如 ñ 之类的字符。然后,当我按下按钮保存值时,我猜按钮的 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;
    }

例如,如果我以 jsf 形式选择España作为 Country,则在 bean 中将被视为Espa±a

我需要统一编码。

非常感谢。

4

2 回答 2

1

您应该只使用 UTF-8,它将支持任何字符,更重要的是,它是所有事物共有的唯一编码。通常某些东西只适用于 UTF-8,例如许多 JSON 实现。如果不是这种情况,JSON 无论如何都不能支持 ISO-8859-1。

例如,primeface 的 Ajax 使用 jQuery.param,它使用基于 UTF-8 的encodeURIComponentURL 编码。

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

顺便说一句,通过“使用 UTF-8”,我的意思不仅仅是将 UTF-8 放在一个看起来正确的随机位置,而是实际上确保 UTF-8 是项目中任何地方的声明和物理编码。

于 2013-02-28T16:25:02.490 回答
0

我知道我的问题出在自动完成和命令按钮的 ajax 请求上。然后我尝试了一切,但没有成功。好吧,我解决了将 jsf commandButton 更改为 Primefaces commandButton 的问题。

<h:commandButton value="submit" action="Periodico?faces-redirect=true" actionListener="#{personal.insertarUsuario}" />

<p:commandButton value="submit" action="Periodico?faces-redirect=true" actionListener="#{personal.insertarUsuario}" />

所以我解决了我的问题。非常感谢您的时间和回答

于 2013-02-28T22:49:54.977 回答