그리스 문자 표시 문제가 있습니다. 문자는 σ μυστικός αυτό?
으로 표시되어야하지만 ó ìõóôéêüò áõôü?
다른 그리스 문자는 잘 표시되지만 위의 문자는 깨져 보입니다.그리스 문자 표시 문제 Tomcat 7
내용은 서블릿에 의해 다음과 같은 코드를 사용하여 HTML 파일에서 읽어 :
public String getResponse() {
StringBuffer sb = new StringBuffer();
try {
BufferedReader in = new BufferedReader((new InputStreamReader(new FileInputStream(fn), "8859_1")));
String line=null;
while ((line=in.readLine())!=null){
sb.append(line);
}
in.close();
return sb.toString();
}
}
응답을 다시 전송하는 동안 내가 UTF-8
로 인코딩을 설정하고 있습니다 :
PrintWriter out;
if ((encodings != null) && (encodings.indexOf("gzip") != 1)) {
OutputStream out1 = response.getOutputStream();
out = new PrintWriter(new GZIPOutputStream(out1), false);
response.setHeader("Content-Encoding","gzip");
}
else {
out = response.getWriter();
}
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
out.println(getResponse());
문자가 잘 나타 내 로컬 개발 컴퓨터 (Windows)이지만 CentOS 서버에 배포 할 때 왜곡 된 것처럼 보입니다. 두 시스템 모두 JDK7과 Tomcat 7이 설치되어 있습니다.
내가 생각할 수있는 몇 가지 원인은 다음과 같습니다. "fn"에서 ISO-8859-1 인코딩 된 문자를 가져 왔습니까? 이러한 문자를 렌더링 할 때 브라우저에 있습니까? 일부 브라우저의 경우 또는 HTML5의 경우 : 'HTTP 헤더에 인코딩을 보내는 경우에도 마찬가지입니다. – morgano
@morgano HTML 파일의 인코딩이'file -bi' 명령을 사용하여 실제로 ISO-8859-1임을 확인했습니다. HTML 파일은'도 포함합니다. 또한 HTML 파일을 직접 열면 (서블릿을 통하지 않고) 문자가 잘 표시됩니다. – Manish
'file -bi'는 여러분의 파일이 ISO-8859-1인지 ISO-8859-7인지를 알 수 없습니다 (최선의 노력 일뿐입니다). 그래서 @GimGarrison이 맞다고 생각합니다. – morgano