2011-03-05 36 views
8

考虑下面的代码如何在node.js中正确执行内容编码?

var http = require('http'); 

http.createServer(function (request, response) { 
    response.writeHead(200, {'Content-Type': 'text'}); 
    response.write("Okay – so recently I’ve started presenting a session to various groups involving the well known IOC container “StructureMap”", 'utf8'); 
    response.end(); 
}).listen(8080); 

我得到的输出

好吧€“所以最近I’已经开始 呈现会话以各种团体 涉及众所周知的IOC容器 â结构图“,尽管 对于上述谈话的内容 非常清楚,但我得到了相当大的 的反弹以示范任何事情 ,甚至远程类似于服务 的位置。

这显然是错误的 - 但它是错误的,因为我已经得到了错误的编码(UTF8应该这样做......对......是吗??)或者是错误的,因为节点是做一些奇怪的?

我正在使用最新版本的节点,昨天克隆自github master。

+0

您在页面的元标记中是否有正确的标题?文本是否已被编写并保存在文本编辑器中,其编码不同? – cusimar9 2011-03-05 18:54:32

+0

看下面 - 看看内容类型:-) – 2011-03-05 18:57:59

回答

10

如果您希望将它作为带有正确编码的文本文件下载,则应使用text/plain; charset=utf-8内容类型。仅仅使用text是不够的。我只是测试它,它按预期工作。将plain更改为html以使浏览器在文本上使用其默认样式。

+0

糟糕,蠢货我。 – 2011-03-05 18:56:56

+0

我编辑了我的答案,告诉你如何让浏览器对内容进行样式化。 – 2011-03-05 18:57:40

+0

是的 - 这很酷 - 我知道这个东西:-) - 我真的想要这个纯文本,因为我将原始文件从一个地方倾倒到另一个地方 – 2011-03-05 19:12:50