使用视图的 HapiJS 编码问题
HapiJS encoding problems using views
当使用视图渲染使用特殊字符的内容时,我遇到了:
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>
有什么建议吗?提前致谢
您的浏览器可能将网页解释为 ISO-8859-1。
默认情况下,Hapi 使用 utf-8 字符集对其响应进行编码。这就是你想要的。您可以通过查看网络工具中的 HTTP 响应来仔细检查是否属于这种情况。但这不太可能是问题所在。
可能的罪魁祸首是您的 HTML 页面中的编码缺乏说明。尝试在页面的 <head>
元素中添加以下代码:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
这指定了文档的字符编码,应该可以解决渲染过程中的任何字符编码问题。
当使用视图渲染使用特殊字符的内容时,我遇到了:
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>
有什么建议吗?提前致谢
您的浏览器可能将网页解释为 ISO-8859-1。
默认情况下,Hapi 使用 utf-8 字符集对其响应进行编码。这就是你想要的。您可以通过查看网络工具中的 HTTP 响应来仔细检查是否属于这种情况。但这不太可能是问题所在。
可能的罪魁祸首是您的 HTML 页面中的编码缺乏说明。尝试在页面的 <head>
元素中添加以下代码:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
这指定了文档的字符编码,应该可以解决渲染过程中的任何字符编码问题。