Tag: utf 8

如何在Node.js中为请求编码任意string?

我有一个这样的string:“abcde李”。 它可以是任何非拉丁字符的string。 我想编码它在请求中使用,所以它会是“abcde%E6%9D%8E”,可以用于http.request。 我试过这个: str.toString("utf-8"); 要么 var buffer = new Buffer(str); str = buffer.toString('utf-8'); 但他们都没有工作。 处理这个问题的正确方法是什么?

如何在请求承诺中制作UTF-8?

在请求之后,我用变音符号向Request-Promise发出了一个请求: var file = rp({uri: serviceURL, encoding: 'utf8'}).forEach(function (polizeistelle) { console.log(polizeistelle) } 在控制台日志中,它表示“pr si”而不是“präsi” 感谢帮助

node.js – 如何识别无效的UTF-8?

我正在实现对UTF-8的支持,而我正面临一个问题。 我想收到无效的UTF-8错误。 好的: var utf8 = require('utf8'); try { var result = utf8.decode(req.params.container); console.log('a valid utf8 (from ', req.params.container , '): ', result); self.bucket_name = req.params.container; next(); } catch (e) { console.log('Invalid UTF-8 (', req.params.container, '): ', e); res.statusCode = 412; res.end('Invalid UTF8 or contains NULL'); } finally { ; } 然后它说,这个Unicodestring是无效的:嗡嗡ΩΩऀ鐌㜄툏㜃댋댋蔈蔈蔈㜅 但是一些python库会说这个string是有效的unicode。 所以我的问题是双重的:(1)是有效的UTF-8,(2)我怎样才能确定一个string是否是有效的utf-8,在node.js?

Big5到utf-8编码,同时使用Node请求来刮取网站

我是Node.js的新手,我试图使用请求模型来取消一个网站,我遇到了编码的问题:目标网站使用big5作为编码,我希望把它变成utf-8下面的代码: var Iconv = require('iconv').Iconv; var fs = require('fs'); var big5_to_utf8 = new Iconv('big5', 'utf-8'); var buffer = big5_to_utf8.convert(fs.readFileSync('./test')); console.log(buffer.toString()); 我怀疑问题可能是由于在报废过程中的一些错误造成的,所以为了您的参考,我的代码为scrapping: var fs = require('fs'); var request = require('request'); var j = request.jar() var cookie = request.cookie('ASPSESSIONIDCSDCTTSR=KDMMMIMDCCIHJIJFDKGEDFOH') j.add(cookie) request({ url: 'http://amis.afa.gov.tw/v-asp/v101r.asp', method: "POST", "Content-type": "application/x-www-form-urlencoded;", jar:true, encoding: 'utf-8', form: { mhidden1:false, myy:101, mmm:9, mdd:25, mpno:"FC", […]

Node.js与HTTP响应正文unicode问题

使用本机“http”模块的HTTP请求的响应正文显示unicode字符的问号字符,而不是其实际值。 这是我正在运行的代码的基本代码片段。 var http = require('http'); var google = http.createClient(80, 'www.google.it'); var request = google.request('GET', '/', { 'host': 'www.google.it', } ); request.end(); request.on('response', function (response) { response.setEncoding('utf8'); response.on('data', function (chunk) { console.log(chunk); }); }); 在回应中有一个以“ Pubblicit ”开头的特定单词。 它的最后一个字母是一个奇怪的字符,显示为一个问号给我。 这个词应该是Pubblicità ,而不是Pubblicit? 。 我也尝试使用.toString()输出数据: console.log(chunk.toString()); 要么 console.log(chunk.toString('utf8')); 但是我得到了同样的结果。 任何想法?

将缓冲区base64 – > utf8编码为node.js

我的应用程序从GMail的Notes文件夹导入所有消息。 我使用imap npm模块。 使用从他们的github页面的例子,我得到一个消息的所有内容到一个缓冲区: stream.on('data', function(chunk) { count += chunk.length; buffer += chunk.toString('utf8'); }); 但是,我得到的是类似的句子 0KHQvdCw0YfQsNC70LAg0YHQvtC30LTQsNC10YLRgdGPINGA0LXRiNC10YLQutCwINC/0YDQvtGB 0YLRgNCw0L3RgdGC0LLQsCDQstC+0L7QsdGA0LDQttC10L3QuNGPLiZuYnNwOzxkaXY+PGJyPjwv ZGl2PjxkaXY+0JfQsNGC0LXQvCDQvdCwI (俄文错误转换) 我发现这些是用base64编码的文本片段,为了读取它们,我需要将它从base64转换为utf8。 有时也会有一个令人讨厌的人物出现 letting them f= all on her shoulders 你知道我怎样才能摆脱这两个问题? 谢谢!

Node.js将ISO8859-1编码为UTF-8

我有一个应用程序,允许用户坚持string到数据库,这些string可能包含表情符号。 我遇到的问题是一个表情符号,例如😊将被存储在MySQL中作为😊 当我使用PHP MySQL客户端检索这个string并将其呈现在Web浏览器中时,它可能会因为Content-Type设置为UTF-8而呈现罚款。 当我尝试读取node.js中的string时,我找回了我认为是ISO8859-1编码的字😊 。 桌上的字符集设置为latin1 ,这就是我从中获取ISO8859-1的地方。 在node.js中对string进行编码的正确方法是什么,以便我可以看到表情符号而不是由MySQL设置的编码。

POST数据中的node.js和utf-8

在使用Node.JS Web服务器时,我在解码POST数据中的UTF-8string时遇到问题。 看到这个完整的testing用例: require("http").createServer(function(request, response) { if (request.method != "POST") { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); response.end('<html>'+ '<head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head>'+ '<body>'+ '<form method="post">'+ '<input name="test" value="Grüße!"><input type="submit">'+ '</form></body></html>'); } else { console.log("CONTENT TYPE=",request.headers['content-type']); var body=""; request.on('data', function (data) { body += data; }); request.on('end', function () { console.log("POST BODY=",body); response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'}); response.end("POST DATA:\n"+body+"\n—\nUNESCAPED:\n"+unescape(body)+ […]

为什么我不能在nodejs HTTP响应中写中文字符?

这是我的小代码: var http = require('http'); var port = 9002; var host_ip = '<my_ip>'; http.createServer(function (req, res) { var content = new Buffer("Hello 世界", "utf-8") console.log('request arrived'); res.writeHead(200, { 'Content-Encoding':'utf-8', 'charset' : 'utf-8', 'Content-Length': content.length, 'Content-Type': 'text/plain'}); res.end(content.toString('utf-8'),'utf-8'); }).listen(port, host_ip); console.log('server running at http://' + host_ip + ':' + port); 以前我只是让res.end发送“你好世界”,它运作良好。 然后我想稍微调整一下,把“世界”改成中文的“世界”,把标题中的“charset”内容types改为“utf-8”。 但在Chrome和Firefox中,我看到了这一点: hello 涓栫晫 然而,惊人的歌剧(11.61)确实显示了正确的结果hello […]

如何在node.js中捕获utf-8解码错误?

我刚刚发现Node(testing:v0.8.23,当前git:v0.11.3-pre) 忽略了其缓冲区处理中的任何解码错误 ,用'\ufffd' (Unicodereplace字符)静默地replace了任何非utf8字符,而不是抛出关于非utf8input的exception。 因此, fs.readFile , process.stdin.setEncoding和朋友为您屏蔽了一大类错误的input错误。 不失败,但真的应该: > notValidUTF8 = new Buffer([ 128 ], 'binary') <Buffer 80> > decodedAsUTF8 = notValidUTF8.toString('utf8') // no exception thrown here! ' ' > decodedAsUTF8 === '\ufffd' true '\ufffd'是一个非常有效的字符,可以在合法的utf8中出现(如同ef bf bd ),所以在error handling中基于这个结果显示猴子补丁是不平凡的。 挖掘更深一层,看起来这是源于节点只是推迟到V8的string,而这些又有上述行为,V8没有任何外部世界充满外部编码的数据。 是否有节点模块或其他,让我赶上utf-8解码错误,最好与上下文有关在inputstring或缓冲区中发现错误的上下文?