2013-03-01 1 views
1

UTF-8 유니 코드 문자 세트를 사용하는 MySql db가 있습니다. 내 JSP에서 나는 때 :ISO-8859-1, UTF-8 및 스페인어 액센트

<meta http-equiv="Content-Type" content="text/html" charset="ISO-8859-1"> 

그것은 DB에 제대로 스페인 악센트를 삽입 할 수 있습니다. 그러나 내가 사용하는 경우 :

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

대신

너희들이 알아 가르시아

의 GarcÃa를 삽입 할 수 있습니다 이유를 UTF-8로가 악센트를 삽입하지 않습니다?

+1

아마 http://stackoverflow.com/questions/488448/jsp-utf-encoding의 중복 –

+0

JSP의 content-type과 일치하는지 확인하십시오. [here] (http://illegalargumentexception.blogspot.co.uk)를 참조하십시오. /2010/12/jsp-what-all-encoding-declarations-mean.html) – McDowell

답변

0

저는 스프링을 사용하고 있기 때문에 CharacterEncodingFilter를 사용하여 문제를 해결했습니다. 현재 브라우저는 일반적으로 HTML 페이지에 지정된 경우에도 문자 인코딩을 설정하거나 세 가지 당신이

(1) 문자 인코딩이 무엇 서블릿 엔진을 말할 설정할 필요가있다

1

JSP에 대해서는 잘 모릅니다.하지만이 문제는 데이터베이스 연결이 데이터베이스에서 데이터를 읽는 방법과 관련이 있습니다. PHP에서, 당신은 UTF-8 인코딩 테이블 (또는 데이터베이스)를 읽고 보장하기 위해, 당신은 연결의 문자 집합을 선언해야합니다 :

if(!$conexion->set_charset("utf8")) { 
$errsql['juego_de_caracteres']="Error al conectar al servidor mysql : ".mysqli_connect_error(); 

그래서 난 당신이 자바에서 비슷한 일을 할 수있는 것 같아요. 웹에서 문자 인코딩을 읽을 수 있습니다. 이 링크 : http://www.joelonsoftware.com/articles/Unicode.html 유용한 것으로 나타났습니다.
또한 설정이 올바르지 않은 경우 예상치 못한 결과가 나타날 수 있습니다. Windows 문자가 ISO-8859-1과 함께 올바르게 표시되는 경우가 있기 때문에 모든 시스템에서 올바르게 표시되지 않을 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 대답을 여기에서 찾았다 : http://stackoverflow.com/questions/5141403/utf-8-encoding-in-spring-mvc-problem-with-forms 브라우저가 charset을 올바르게 설정하지 않은 것처럼 보인다. 강제로 필터가있다. – Oscar

0

을 형성하지 않기 때문에 유용 소스 파일에 사용하는 것은

(2) 출력

(3)에 무엇 스트림을 인코딩 문자 수신기를 말한다.

당신의 메타에게로 원하는 문자 집합 서블릿 엔진을 말해 태그는 이들 중 마지막 부분 만 수행하지만 실제로 인코딩에서 포맷 된 출력 스트림을 보내지 않을 수 있습니다.

소스 파일을 읽는 방법을 서블릿 엔진에 알려주고 소스 파일이 인코딩 된 실제 문자 세트를 넣어야합니다. UTF-8을 사용하는 경우에만 UTF-8이됩니다. 8 편집기.

<%@page contentType="text/html;charset=???????"%> 

어떻게 출력 스트림을 말하려면이 옵션을 사용합니다 :

response.setCharacterEncoding("text/html; charset=UTF-8") 

에서 당신이 UTF-8을 만들기 위해 어떤 고통을하지 않은 경우 그것은 아마 ISO-8859-1 DB의 데이터가 UTF-8로 인코딩 된 것을 알고 있기 때문에 문제를 해결할 마지막 설정 일 수 있습니다.