Tag: 编码

nodejs UTF-8编码的string有黑色的问号

我有一个csv,我从我的供应商处得到,他们编码了一个UTF-8string,现在包含黑色的问号。 我尝试将其转换回来,但没有运气。 var common = require('./common/index.js'); var fs = require('fs'); var Iconv = require('iconv').Iconv; var encoding = require('encoding'); var iconv = new Iconv('UTF-8', 'ISO-8859-1'); var detectCharacterEncoding = require('detect-character-encoding'); common.fileHandler( 'default.csv', function(dataSet) { var fileBuffer = fs.readFileSync('file.txt'); var charsetMatch = detectCharacterEncoding(fileBuffer); console.log(charsetMatch); console.log(encoding.convert(dataSet[0].description, 'UTF-8', 'ISO-8859-1')) } ) 回报 { encoding: 'UTF-8', confidence: 100 } <Buffer c3 […]

JSON数据最紧凑的URL编码?

前段时间,我看到一个网站,把游戏重放数据编码成unicode字符,以便你可以复制和粘贴地址与朋友分享。 我基本上想做同样的事情 – 我有一些JavaScript对象中的数据,我想把它放到地址栏中。 我知道我可以使用jQuery.param或类似的东西,但我想要一个更紧凑的格式。 原来这对Google来说有点棘手。 大部分search结果都会显示url缩写,这是明显不同的。 我不想在我的数据库中存储一个简短的URL以供以后查找。 所有的数据应该在URL本身。 我可以使用什么编码? algorithm的链接或描述是好的,但对Node / JavaScript的支持会更好。 我只需要支持最新版本的Chrome稳定版,所以我不在乎旧版浏览器是否无法处理unicode。 我想我会把数据放在片段部分( #之后),所以我只需要支持适用于这个片段的任何编码规则。 我认为任何事情都可以,不是吗?

node.js:如何以自定义格式获取和解码/编码响应

这是在node.js中支持哪些编码的页面: 在这里或这里 。 许多stream行的(或前段时间stream行的)编码都不见了,比如windows-1252。 我想获取一个在Windows-1252中的网页并parsing响应,最后将其保存到一个文件中。 编码有问题。 我已经做了很多不同的尝试,我的思想吹起来:( 所以我知道node.js中有iconv和iconv-lite模块,它们支持比node.js更多的编码。 我想使用iconv-lite ,因为我无法编译公司机器上iconv所需的东西。 无论如何,我有 var iconv = require('iconv-lite'); 现在,难以取得回应。 正如我写的,我的资源位于networking的某个地方,所以我需要发起一个HTTP请求。 我一直在尝试node-wget(npm: wget模块), http.request , http.get和所有这些尝试失败。 我也google了,最接近的解决scheme,我所需要的似乎是nodejs编码使用请求 / https://stackoverflow.com/a/22027928/769384 ,但作者并没有写在地狱的request是什么 – 这是一个节点模块? 他如何加载它? 我也读过https://groups.google.com/forum/#!topic/nodejs/smA6-jGq2pw ,但没有find干净的解决scheme。 我将不胜感激一小部分的代码,使我能够获取一个Web文档,并将其从windows-1252编码飞行转换为UTF-8 。 唯一的参数是文档的URL。

如何处理(cli)stdoutstream中的字符编码输出到node.js中?

我很困惑如何安全地存储和读取Node.js中的process.stdout输出: console.log() (以及类似的)的CLI输出是否以特定的字符编码完成? 或者是未指定forms的原始二进制文件? 可以有二进制数据吗? (我不知道) Node.js是非常面向utf8,但是然后JS是UCS2,我不知道stream与它做什么。 和相关:如果我将缓冲区转换为string在UTF8(默认)是适用于string比较安全的? 注意我的diff渲染器将使用jsenc来显示,所以它显示非printables。 用例是我想能够安全地断言/比较CLI快照来validation我为各种工具构build的自定义logging(注意,这包括发现非预期的垃圾/皮棉输出,所以我想要挖掘真正的最终输出stdiostream)。 (任何相关的build议是值得欢迎的)

节点请求ISO-8859-1自节点4以来不工作

我得到一个网页与返回拉丁文1 它使用iconv-lite为节点0.10。 但现在用 $ node -v v4.1.1 我不能使用iconv-lite和最新的节点版本 。 所以我试图回到Iconv: var Iconv = require('iconv').Iconv; … request(url, { uri: url, method: 'GET'}, function (err, resp, body) { var ic = new Iconv('ISO-8859-1', 'utf-8'); var buf = ic.convert(body); body = buf.toString('utf-8'); 但是,这导致了它应该是关键的。 我不知道如何解决这个问题。 任何提示,欢迎。

使用Node的http.get获取UTF-8 html内容

我试图拉一个给定的url的HTML内容和原始内容编码是utf-8。 我得到的页面的HTML,但文本白色的HTML元素返回不良格式(问号)。 这就是我所做的: var parsedPath = url.parse(path); var options = { host: parsedPath.host, path: parsedPath.path, headers: { 'Accept-Charset' : 'utf-8', } } http.get(options, function (res) { var data = ""; res.on('data', function (chunk) { data += chunk; }); res.on("end", function () { console.log(data); }); }).on("error", function () { callback(null); }); 我如何执行返回的数据的编码? 谢谢

Node.js WebSocket服务器没有收到来自Chrome的正确数据

我一定会错过一些非常明显的东西,但是我无法正确地工作。 握手过程是正确的,但只要我发送一个数据,我就不会在服务器上得到正确的数据。 服务器: stream.on("data", function(data) { if(!handshake) return doHandshake(); // no problems with handshake console.log(data); }); 客户: ws = new WebSocket("ws://localhost:12345"); ws.onopen = function() { ws.send(String.fromCharCode(parseInt("89", 16))); } 我在node.js控制台中看到: <Buffer 81 82 ed 68 ae 67 2f e1> 所以键是ed 68 ae 67 ,编码数据是2f e1 。 使用异或解码解码的数据似乎是c2 89 。 一个c2因为某个未知的原因而被预先考虑了 – 这个89是正确的。 奇怪的事情也发生在其他人物身上: ws.send(String.fromCharCode(parseInt("ab", 16))); 我得到: […]

如何通过nodejs以正确的编码保存pdf

所以我想用我的脚本从网站上下载PDF文件,但问题是文件在这个过程中被破坏,我很确定这是因为使用了错误的编码。 我正在使用请求库下载文件,我已经将Content-type设置为application-pdf 我的代码很简单:4 var fs = require('fs'); var request = require("request"); request({uri: 'xxxxxxxxxxxxxx.pdf', headers: { 'Content-type' : 'applcation/pdf' }} , function (error, response, body) { if (!error && response.statusCode == 200) { fs.writeFileSync("10111.pdf", body); } }) 我在哪里需要指定用于此工作的编码? 我试图打开我得到的正常保存的PDF和SublimeText3编码帮助说它是在Windows中 – 而我下载的是在UTF8。 我已经通过了nodejs缓冲区和fs文件,并且不支持像windows-asd这样的编码,只是像'utf8'和'binary'这样的一般编码。 我是否应该使用不同的方法来获取文件?

将数据库以CSV格式从latin1编码的string导出到utf-8

我们有MSSQL 2005数据库编码为latin1的string。 要求是将它作为utf-8导出为新的DB。 我已经写了下面的脚本来导出数据库: var sql = require('mssql'); var csv = require("fast-csv"); var fs = require("fs"); var iconv = require('iconv-lite'); function exportCSV(tableName) { return new Promise(function (resolve, reject) { var csvStream = csv.format({headers: false, quoteColumns: true}), writableStream = fs.createWriteStream("Output/"+tableName+".csv",{encoding: "utf8"}); writableStream.on("finish", function() { console.log(tableName+" CSV file exported!"); resolve(); }); csvStream.pipe(writableStream); var request = new sql.Request(); […]

Express / Multer在ucs2中检测到文本文件的7位编码。 他们是同义词吗?

在一个node.js应用程序中,我收到上传的文本文件,与Multer中间件。 这是一个有效的ucs2编码的文件。 当我尝试读取它时,我得到一个带有buffer.toString()的不可读的string。 它通过buffer.toString('ucs2')得到正确的输出。 但是Multer给出的编码是req.file.encoding === '7bit' 。 我的问题是: 我可以做“7bit”和“ucs2”之间的直接关系 ,所以每当我从Multer得到“7bit”,我可以做一个buffer.toString('ucs2') ? 或者它也可能意味着其他编码? 在后一种情况下,我怎样才能确保获得正确的文本文件的内容? 这里是代码的一部分: var getFile = function(req, res, next) { var encoding = req.file.encoding; fs.readFile(req.file.path, function (err, buffer) { var data = buffer.toString(encoding); } } 这个确切的代码在这里不起作用,因为encoding给出了“7位”,这是toString无法理解的。 谢谢。