我想回复原始文本。
但是当我收到ä这封信的时候,我有时会得到 。
e.g。对于Stäblistraße,云返回St blistraße。 它并不总是发生。但即使有一次太多了..
如何验证它永远不会再发生?
我尝试了utf8.decode(value)
但没有工作 - Error: Invalid continuation byte
。
附加的代码段:
var sendResponse = function(res,response,type)
{
res.writeHeader(200, {
"Content-Type" : "text/plain"
});
res.write((JSON.stringify(response))+"\n");
res.end();
}
答案 0 :(得分:0)
您正在St��blistraße
输出有效的UTF-8,因为ä
呈现为两个字节。但是,您的浏览器并不知道它的UTF-8。发送标题(可能使用response.setHeader()
):
Content-Type: text/html; charset=utf-8
或在HTML中添加meta
标记:
在HTML5中,
<meta charset="utf-8">
在HTML4 / XHTML中,
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
(假设您正在向浏览器发送HTML;您对细节有点模糊)。
答案 1 :(得分:0)
要输出值,请尝试使用相应的实体
ä = ä
ö = ö
ü = ü
ß = ß
eg Stäblistraße, will be Stäblistraße,
答案 2 :(得分:0)
var myText = new Buffer('Stäblistraß', 'utf8')
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.write(encodeURIComponent.myText.toString('utf8'));
在浏览器端,使用decodeURIComponent()
将字符串转换回来。每次都有效。