2013-07-22 2 views
0

Мне нужны польские символы в моем веб-проекте (Java EE). Когда я вставляю строку в базу данных, все нормально, но когда я пытаюсь вставить строку на мою страницу. В базе данных я вижу? вместо польских символов. Я поставил кодировку UTF-8 в моей странице:Кодирующие символы в базе данных

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

и GlassFish-web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app error-url=""> 
    <class-loader delegate="true"/> 
    <parameter-encoding default-charset="UTF-8" /> 
    <jsp-config> 
    <property name="keepgenerated" value="true"> 
     <description>Keep a copy of the generated servlet class' java code.</description> 
    </property> 
    </jsp-config> 
</glassfish-web-app> 

Где еще мне нужно сделать, чтобы установить что-нибудь?

+0

Какую базу данных вы используете? MySQL? MSSQL? Postgres? Oracle? –

+1

Вы должны убедиться, что ваше соединение с вашей базой данных (с Java) также использует кодировку UTF-8. Кроме того, если вы собираетесь поместить кодировку в тег meta (а не в заголовок HTTP, где она должна быть), она должна быть в первых 512 байт начала содержимого и перед любыми тегами, содержащими текст (даже до тега 'title'). В противном случае не все браузеры будут его уважать. –

+0

MySQL - это моя база данных. –

ответ

0

Обязательно установите utf-8 engine в свою базу данных. Попробуйте использовать кодировку символов для подключения к базе данных.

jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8 

Более точно, Вы должны написать ServetFilter, чтобы установить тип кодировки символов. Я думаю,

CharSetFilter.java

public class CharSetFilter implements Filter { 
    public void init(FilterConfig fConfig) throws ServletException { 
    } 

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

    public void destroy() { 
    } 
} 

web.xml конфигурации

<filter> 
    <filter-name>CharSet Filter</filter-name> 
    <filter-class>your.package.CharSetFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CharSet Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

Не работает ли способ. –

Смежные вопросы