【问题标题】:How to get i18next-node to display umlauts the right way?如何让 i18next-node 以正确的方式显示变音符号?
【发布时间】:2013-08-19 03:04:44
【问题描述】:

我搜索了很多,但找不到解决问题的方法。

我的应用使用 i18next,它运行良好,除了一个问题:德语变音符号 (ü,ö,ä) 显示为 ...。

我不明白我是不是弄错了,因为这个示例应用程序没有变音符号的问题:http://i18next-example1.eu01.aws.af.cm/?setLng=de-DE(github:https://github.com/rbeere/i18next-jade-express-sample

我怎样才能弄清楚这个?

【问题讨论】:

    标签: node.js internationalization express i18next


    【解决方案1】:

    罪魁祸首可能是:

    • Translation.json 文件未保存为 UTF8。
    • 如果有任何特定的 使用字体,它们的 Unicode 支持非常有限(这是 现代字体不太可能)。
    • 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'});
      });
      

    【讨论】:

    • 感谢您的回答!我使用标准字体,所以这不是问题。 Translation.json 现在保存为 UTF-8,但无论是编码声明还是编码声明都没有这样做。您还有其他想法吗?
    • @GMcLuhan,您的实际应用程序是从数据库还是从文件中获取内容?如果是 DB,您是否检查了 DB 编码?因为我唯一可以生成此问题的方法是在 Latin-1 (ISO-8859-1) 中包含内容(如果是文件中的示例)并在 UTF8 中包含响应。
    • 它们纯粹来自文件,现在以 UTF-8 编码。这真的很奇怪,因为我认为我的应用程序就像我上面链接的一样工作。那个工作正常,当我在我的服务器上运行它时,但我的抛出所有这些......
    • 有趣。最后想到的是Content-Type HTTP 标头字段。我将其添加到答案中。如果您添加您在服务器上运行的 Node.js 版本以及 HTTP 标头,这可能会有所帮助。
    • 解决了这个问题:将.jade 保存为UTF-8 让编码更完美!再次感谢您,希望这对未来的人们有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2014-01-04
    • 2012-02-04
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多