2013-08-16 2 views
1

나는 꽤 많이 검색했지만 내 문제에 대한 해결책을 찾지 못했습니다.i18next-node에서 움라우트를 올바르게 표시하는 방법은 무엇입니까?

내 응용 프로그램은 i18next를 사용하며 한 가지 문제점을 제외하고는 제대로 작동합니다. 독일어 움라우트 (ü, ö, ä)는 displayed로 표시됩니다. 이 예제 응용 프로그램은 움라우트 아무 문제가 없기 때문에

내가 잘못 얻은했다 이해하지 않는다 : http://i18next-example1.eu01.aws.af.cm/?setLng=de-DE (GitHub의를 : https://github.com/rbeere/i18next-jade-express-sample)

가 어떻게이 일을 알아낼 수 있습니까?

답변

4

범인이 될 수 있습니다

  • Translation.json 파일이 UTF8로 저장되지 않습니다.
  • 특정 글꼴이 사용되면 해당 유니 코드 지원이 매우 제한적입니다 (현대 글꼴에서는 이 거의 없습니다).
  • layout.jade 파일은 페이지 인코딩을 선언하지 않습니다. 따라서 브라우저에서 자동 감지합니다. 이 문제를 해결 아닌지에 상관없이, 그것은 헤더에서 페이지 인코딩을 선언하는 좋은 방법입니다 :

    meta(http-equiv="Content-Type",content="text/html; charset=utf-8") 
    
  • Content-Type HTTP 헤더 필드가 제대로 설정되어 있지 않습니다. 다음과 같이 HTTP 응답을 변경합니다

    app.get('/', function(req, res) { 
        res.header("Content-Type", "text/html; charset=utf-8"); 
        res.render('index', { title: 'Localization with Express, Jade and i18next-node'}); 
    }); 
    
+0

대답 주셔서 감사합니다! 내가 문제가되지 않는 표준 글꼴을 사용합니다. 'Translation.json'은 이제 UTF-8로 저장되었지만 인코딩이나 인코딩 선언은하지 않았습니다. 다른 아이디어가 있습니까? –

+0

@GMcLuhan, 실제 응용 프로그램이 DB 또는 파일에서 내용을 가져 옵니까? DB 인 경우 DB 인코딩을 확인 했습니까? 이 문제를 생성 할 수있는 유일한 이유는 Latin-1 (ISO-8859-1)의 내용 (파일의 예제의 경우)과 UTF8의 응답을 갖는 것이었기 때문입니다. – Shervin

+0

파일에서 순전히 가져 왔으며 이제는 UTF-8로 인코딩됩니다. 내 애플리케이션이 위에서 링크 된 것과 비슷하다고 생각하기 때문에 정말 이상합니다. 그 서버는 서버에서 실행할 때 잘 작동하지만, 내 모든 서버는이 모든 것을 throw합니다. –