내 jsf 페이지에 적절한 문자 세트를 설정하는 데 문제가 있습니다. latin2 (ISO-8859-2 charset) 및 latin2_croatian_ci 데이터 정렬을 사용하여 MySql db를 사용합니다. 하지만 관리되는 빈 프로퍼티의 값을 설정하는 데 문제가 있습니다. 내가 포함 머리에JSF ISO-8859-2 charset
<%@ page language="java" pageEncoding="ISO-8859-2" contentType="text/html; charset=ISO-8859-2" %>
: 내 페이지의 상단에
Page 지시문은
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
그리고 내 양식 태그는 다음과 같습니다
<h:form id="entityDetails" acceptcharset="ISO-8859-2">
제작 한
및 doFilter 메서드 구현을 사용하여 web.xml에 등록 된 필터 :
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("ISO-8859-2");
response.setCharacterEncoding("ISO-8859-2");
chain.doFilter(request, response);
}
그러나 inputText를 통해 관리되는 bean 속성을 설정하면 모든 특수 (유니 코드) 문자가 '?'로 바뀝니다. 캐릭터.
저는 실제로 페이지를 잘 수행 할 수 있도록 charset을 설정하는 방법에 대한 아이디어가 없습니다. 어떤 제안?
미리 감사드립니다.
* 어떻게 손상된 것으로 결론을 냈습니까? 보기에서 검토 했습니까? 아니면 stdout에서? (여기서 당신은'System.out.print' 문자를 쓰게됩니다). – BalusC
응답이 늦어서 죄송합니다. db에 SQL 스크립트를 통해 데이터를 삽입했는데 올바르게 표시되었으므로 올바른 charset을 표시하는 것이 문제가되지 않습니다. JSF에서 전송 된 메소드 bean 데이터 세트에 (stdout 및 slf4j를 통해 파일에 기록 된) 데이터가 이미 손상되었으며 데이터가 손상되었습니다. 또한 데이터베이스에 삽입 된 데이터가 손상되었습니다. – Vladimir