프랑스 클라이언트 용으로 몇 가지 작업을하고 있으므로 악센트 부호가있는 문자를 처리해야합니다. 하지만 난 많은 어려움을 겪고 있습니다. 해결책이 간단하고 누군가가 나에게 지적 할 수 있기를 바라고 있습니다.특수 문자 및 악센트 부호가있는 문자
문자열 : La For? pour T?oin
주 악센트 문자 다음 누락 된 문자 - é 다음 ê과 m 다음 t : La Forêt pour Témoin
가 변환됩니다.
:과 같은 일부 문자를 이스케이프하는 데 성공한 StringEscapeUtils를 사용해 보았습니다. 나는 또한 동일한 결과 (ă, ê가 작동하지 않음)를 생성하는 내 자신의 이스케이프 기능을 구축했습니다.
private String escapeChars(String string) {
char[] chars = string.toCharArray();
String result = "";
for (int i = 0; i < chars.length; i++) {
int c = chars[i];
result += "&#" + c + ";";
}
return result;
}
이 프로젝트는 앱 엔진 플러그인을 사용하여 이클립스에서 실행되고, 나는 문제가 자바, 앱 엔진, 또는 SQLite는에 의해 발생 여부를 좁힐 수 없습니다.
도움을 주시면 감사하겠습니다.
EDIT : 폼에서 요청 매개 변수를 표시 할 때 문자열이 잘못되었음을 발견했습니다. (즉, request.getParameter ("string")에 이미 형식이 잘못된 콘텐츠가 있음).
다니엘이 제안한 메타 태그를 사용해 보았는데 성공하지 못했습니다. 악센트 문자가 하드 코딩 JSP로 때 의도 한대로
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
이가 표시됩니다 : 당신이 비록 올바른 궤도에, HTML 문서의 헤더 데이터는 다음 생각합니다.
편집 : 또한 페이지 시작 부분에 <?xml version="1.0" encoding="UTF-8"?>
을 추가했습니다.
나는 해결책에 매우 가깝다. 브라우저 양식에서 페이지의 인코딩을 변경하면 데이터가 서버로 올바르게 전달된다는 것을 발견했습니다. 브라우저에서 페이지 인코딩을 자동으로 검색하는 방법을 알아낼 수 없습니다. 해결
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
: 나는 브라우저에있는 자바 기본적으로 UTF-8 인코딩을 자동으로 감지하는 방법을 해결할 수 없었다. 그래서 나는 request.setCharacterEncoding ("ISO-8859-1")을 사용하여 ISO-8859-1 로의 문자 인코딩을 강제했다.
이것은 문제를 해결할 수는 없지만 좋은 읽을 거리입니다. http://www.joelonsoftware.com/articles/Unicode.html –
양식 제출 결과 요청 매개 변수가 올바르지 않으면 브라우저 악센트 부호가없는 문자를 나타낼 수없는 자동 감지 문자 세트를 사용하려고합니다. 다음을 추가하십시오 :' xml version = "1.0"encoding = "UTF-8"?>'문서의 맨 처음에 공백이 오지 말고; 이들은 XHTML 문서의 맨 처음 문자 여야합니다. –