Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 西班牙语字符的问题áé&#xóúñ;_Jsf_Jsf 2_Character Encoding - Fatal编程技术网

Jsf 西班牙语字符的问题áé&#xóúñ;

Jsf 西班牙语字符的问题áé&#xóúñ;,jsf,jsf-2,character-encoding,Jsf,Jsf 2,Character Encoding,我在CodeIgniter中的文本和包含拉丁字符的文本之间存在问题 我在输入文本中写入:Solución并按下保存按钮,但在数据库中出现:Solución显然,当我在网站上获得数据时显示:Solución 我在数据库中插入了单词más,在网站上显示了más,这不是问题所在 我在Intellij IDEA 12中使用JSF、java和openjpa。我使用的是MySql,sql脚本中说: CREATE DATABASE IF NOT EXISTS `ciclos_calidad` /*!401

我在CodeIgniter中的文本和包含拉丁字符的文本之间存在问题

我在输入文本中写入:
Solución
并按下保存按钮,但在数据库中出现:
Solución
显然,当我在网站上获得数据时显示:
Solución

我在数据库中插入了单词
más
,在网站上显示了
más
,这不是问题所在

我在Intellij IDEA 12中使用JSF、java和openjpa。我使用的是MySql,sql脚本中说:

CREATE DATABASE IF NOT EXISTS `ciclos_calidad` /*!40100 DEFAULT CHARACTER SET utf8 */;
我有:

<h:form>
    <h:inputext value="#{hi.word}/>
    <h:commandbutton actionlistener="#{hi.save()}" value="Save"/>
</h:form>

首先,请确保数据库的编码为UTF-8,如果问题仍然存在,请使用以下解决方案之一:

1-使用web筛选器将数据编码为UTF-8。web筛选器的代码:

    public class CharacterEncodingFilter implements Filter {
    @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

  @Override
   public void destroy() {

      }
 }
以及web.xml:

<filter>
<filter-name>UTFEncodingFilter</filter-name>
<filter-class>filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UTFEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

UTFEncodingFilter
filter.CharacterEncodingFilter
UTFEncodingFilter
/*

尝试将编码放在服务器配置文件本身中

   <parameter-encoding default-charset="UTF-8"/>


此数据以UTF-8编码。您可以在运行时对其进行解码或更改默认编码,DBMS将答复您,但如何执行将取决于您使用的数据库系统。我使用的是MySql,但sql脚本中说:
CREATE database IF NOT EXISTS'ciclos_calidad'/*!40100默认字符集utf8*/有:
请说明您的问题在哪里:从数据库显示数据时在客户端,在应用程序级别的服务器端,在从客户端接收数据时,在数据库级别的服务器端,在存储数据时……看起来一切都会很顺利。至少从访客的角度来看,他们正确地看到了UTF-8。你只需要告诉你正在使用什么应用程序来检查数据库就可以了。
   <parameter-encoding default-charset="UTF-8"/>