Jsf 西班牙语字符的问题áéóúñ;
我在CodeIgniter中的文本和包含拉丁字符的文本之间存在问题 我在输入文本中写入:Jsf 西班牙语字符的问题áéóúñ;,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
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"/>