Tag: 编码

问题与nodeJS编码

所以我面临着一个我无法解决的情况。 这是我的代码: var fs = require('fs'); var path = require('path'); module.exports = { showTree: function (req, res) { var _p; if (req.query.entity) { _p = path.resolve(__dirname, '../../uploads/Segmentation', req.query.entity); } else { _p = path.resolve(__dirname, '../../uploads/Segmentation', 'Default'); } if (req.query.id == 1) { processReq(_p, res); } else { if (req.query.id) { _p = req.query.id; processReq(_p, res); […]

Python urllib.unquote_plus node.js等效

我试图解码通过HTTP GET给出的一些数据,基本上是由Python编码的东西,我试图用Node解码。 Python : data = "0%0E%09-%FB%CD%989%2B%C0%E5%A2+%28%93%D9%C9%86r0%9C%8D+%F1%E3v%0C%9E%19%91%E3%06%01%FA%D5%5B%F3%3D7%10%23%E7%95S%B7%93%60%DB%1F%1F%8A%E3%5D%CC%95%B8%DA%DB%A3%18%9FoVzC%23%FCB%8D%86%86N9%BE%AE%98%13x%0D%D9u%C48%F6%AD%A3%19z%BE%DB%8E-%C4T%02P%06%D5%C1%21%1F%FB%9C%EB%0A%7C%F9XFB%9D%F3" print urllib.unquote_plus(data) 输出: 0 – ͘9+ ( Ɇr0 v u 8 z ێ- TP ! [ =7# S ` ]̕ ۣ oVzC# B N9 x | XFB 节点 : var token = '0%0E%09-%FB%CD%989%2B%C0%E5%A2+%28%93%D9%C9%86r0%9C%8D+%F1%E3v%0C%9E%19%91%E3%06%01%FA%D5%5B%F3%3D7%10%23%E7%95S%B7%93%60%DB%1F%1F%8A%E3%5D%CC%95%B8%DA%DB%A3%18%9FoVzC%23%FCB%8D%86%86N9%BE%AE%98%13x%0D%D9u%C48%F6%AD%A3%19z%BE%DB%8E-%C4T%02P%06%D5%C1%21%1F%FB%9C%EB%0A%7C%F9XFB%9D%F3'; console.log(unescape(_.replace(token, '+', '%20'))) _是Lodash图书馆。 请参阅https://lodash.com/docs/4.16.6#replace 输出: 0 -ûÍ9+Àå¢ (ÙÉr0+ñãv ÙuÄ8ö£z¾Û-ÄTPÕÁ!ûë ãúÕ[ó=7#çS·`Ûã]̸ÚÛ£oVzC#üBN9¾®x |ùXFBó 两个解码的输出看起来相似,但有点不同,我不明白为什么。 一旦解密(通过另一种algorithm),他们给出了类似的结果,但JS版本有意想不到的字符,如{"duration": 600m […]

如何猜测使用node.js的http编码?

当我得到这个页面http://booking.airasia.com/css/AKBase/Cultures/en-GB/far-min.css与节点的http , toString方法给了我腐败的东西。 显然这个页面是用UTF-16 ,但是在头文件中没有提到这个事实。 然而Firefox猜测编码没有问题,这是节点可以做的事吗? (我知道我可以转换这个特定的页面,因为我知道它的编码现在 ,但我想猜测编码)

Node.js的stdout编码问题

我做了一个快速的Ajax驱动的页面来粘贴一些文本并运行yuicompressor。 输出工作的很好,但是,当我发送标准输出回到我的网页,我有关于在<字符切断数据的问题。 例如,当我运行这个压缩机时: function Enum(values){ for( var i = 0; i < values.length; ++i ){ this[values[i]] = i; } return this; } 我得到一个压缩版本,没问题。 现在,当我把这个发送到我的页面这样的: exec(command, function(err, stdout, stderr) { console.log(stdout); res.writeHead(200, {'content-type': 'text/plain'}); //res.write(decodeURIComponent(escape(stdout))); //res.write(qs.escape(stdout)); res.write(stdout); res.end('\n'); }); 这总是导致数据发送被切断在<导致: function Enum(a){for(var b=0;b console.log(stdout)完美显示,所以直到它发送到客户端,它被切断。 当我尝试编码时,我能够将整个输出都转到我的页面,但是在前端解码会导致同样的问题。 这是ajax调用: if(ready) { $.ajax('/get' + args + '/', { type: 'GET', […]

Expressjs:res.download期间的图像文件编码问题

我有一个非常普通的node.js服务器,expressjs在本地安装用于开发目的; 我存储各种文件,并通过基本的HTTP调用请求它们,通过快速的res.downloadfunction返回文件。 大多数情况下,这个工作没有困难。 然而,对于非常小的文件子集,最终用户收到的文件比预期的要大得多(几乎是2倍),而且任何传统的查看器都无法读取。 可能有一百个文件,这只发生了两次,都是JPG文件,但样本太小,不能得出任何结论。 我知道的 : 这个问题是可复制的:如果它发生在一个文件,它总是发生; 问题与文件存储方式无关:如果将有问题的文件与另一个文件交换,但保留其他所有内容(名称,位置等),则工作正常; 在res.download发生之前,文件是好的:用fs.stats检查它的大小返回正确的值 HTTP响应遇到不可见的问题:没有错误,200响应代码… 源文件似乎有正常的元数据和JPG标记 更新我做了一些testing,并且这个问题似乎与编码有关 :被破坏的响应文件由于未知的原因而以UTF-8编码; 所有非UTF-8字符被EF BF BD (未知的字符符号)替代时,大小不一致! 我仍然无法理解为什么会发生这种情况,是什么使这几个文件与其他文件不同,以及是否能够在上游进行检测和/或纠正。 更新2经过一些额外的testing,我仍然不能确定原因,但我可以添加以下信息: 系统方面,问题发生在fs.js中的数据stream中 根本原因位于图像EXIF数据中的某处 对于那些感兴趣的,可以在这里find源图像(source.JPG)和下载结果(response.JPG): http : //www.sycomor.fr/test/ ; 我也添加了一个不受下载影响的类似图像,并且干净。 对于什么是值得的,两张照片分开拍摄,相同的设置相同的照相机,所以我坚信这个问题是由一些外部来源造成的。 谢谢 !

在nodejs中使用双引号切分缓冲区时获取额外的字符

我试图裁剪一个JavaScript对象(string)到一个确定的大小(专门为苹果推送通知256最大),但是我刚刚发现,当我的一个variables有一个string包含双引号它得到一个额外的字符混乱限制,在下面的例子中,我复制它有一个30大小的限制 var object = {"hola":"mundo", "data":""} var objectBuffer = new Buffer(JSON.stringify(object)) console.log(objectBuffer.length) // this should be 26 OK var data0 = new Buffer('normal', 'utf-8') console.log(data0.length) // this should be 6 OK var data1 = new Buffer('"normal', 'utf-8') // Note extra double quote (it only happends with double quotes weird characters like ó work ok) console.log(data1.length) […]

如何将文本转换为Node.js上的Base58?

我想将“Hello World”这样的消息转换为base58,然后使用node.js将其解码。 Base-58模块有下面的解释,但我不能完全理解如何转换我的消息。 Base58.encode(a Buffer or Uint8Array) returns a String Base58.decode(a String) returns a Buffer 我想我需要首先将消息转换为其他内容,然后转换为base58。然后解码base58消息,再次转换为其他内容,并从那里转换为文本,对不对?

缓冲区toString('utf8')从Firebird中select后返回

我正在使用火鸟,我select用户的数据。 它返回我缓冲区对象。 所以在上一个问题中,他们提出这个问题 var name = result[0].name.toString( 'utf8' ); 所以我做了,它的工作,但在一些行中有俄罗斯字符,我不知道什么编码。 而当我显示他们返回 。 如何解决它? 请社区帮助。 谢谢

在JavaScript中编码为字母数字

如果我有一个随机string,并希望将其编码为仅包含字母数字字符的另一个string,那么在JavaScript / NodeJS中执行此操作的最有效方法是什么? 显然,必要时可以将输出string转换回原始inputstring。 谢谢!

Express.js参数的URL编码,带特殊字符

我正在构build一个express.js web API,并且遇到了一个与我们的遗留数据一起工作的障碍。 我们在包含许多不同特殊字符的特定数据模型上具有标识字段。 以下是我们的一些示例ID: W2220-059AP0254LL%M031 SMT II #12B75984 ST14P134-0110072,9\'98 TKH-12-110????? 所以我们有一个端点: /thing/{id} 上述例子显然不适用于这个端点。 我试图在我们的第一个入口点上进行URI编码,但是在大多数情况下已经太晚了。 有没有其他办法可以做到这一点?