【问题标题】:HapiJS encoding problems using views使用视图的 HapiJS 编码问题
【发布时间】:2015-02-01 19:33:54
【问题描述】:

当使用视图使用特殊字符渲染内容时,我遇到了这种情况:

reply.view('index.jade', {name : 'Pagès'}); //outputs "Pagès"

模板只是:

p #{name}

但是,如果我只是发送纯文本,它可以正常工作:

reply('<p>Pagès</p>');  //outputs "Pagès"

我用 Jade 和 EJS 都试过了,都渲染错了,所以我认为问题与 Hapi 有关。

以下代码(通过命令行)丢弃 Jade 问题:

var jade = require('jade');
var fn = jade.compile('p #{name}');
var html = fn({name : 'Pagès'});
console.log(html);   // output ok -> <p>Pagès</p>

有什么建议吗?提前致谢

【问题讨论】:

  • 您是否尝试过使用!{name}
  • 我试过了,没有运气:(谢谢你的回复

标签: html node.js template-engine hapijs


【解决方案1】:

您的浏览器可能将网页解释为ISO-8859-1

默认情况下,Hapi 使用 utf-8 字符集对其响应进行编码。这就是你想要的。您可以通过查看网络工具中的 HTTP 响应来仔细检查是否属于这种情况。但这不太可能是问题所在。

可能的罪魁祸首是您的 HTML 页面中的编码缺乏说明。尝试在页面的&lt;head&gt; 元素中添加以下代码:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

这指定了文档的字符编码,并且应该在渲染过程中解决任何字符编码问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 2018-08-26
    • 2015-10-12
    • 2017-04-15
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多