Articles of 字符编码

console.log中的节点stream缓冲区vs process.stdout.write

使用NodeJS v5.6,我创build了一个名为read-stream.js的文件: const fs = require('fs'), stream = fs.createReadStream(process.argv[2]); stream.on('data', function(chunk) { process.stdout.write(chunk); }); stream.on('error', function(err) { process.stderr.write("ERROR: " + err.message + "\n"); }); 和一个名为target.txt纯文本数据文件: hello world this is the second line 如果我做node read-stream.js target.txt的内容正常打印在我的控制台,一切都很好。 但是,如果我切换process.stdout.write(chunk); 用console.log(chunk); 那么我得到的结果是这样的: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 74 68 69 73 […]

的NodeJS。 处理 字符编码

我在处理字符编码方面遇到困难。 我试图刮下面的url: http://www.google.com/movies?near=Montreal&date=0 我的代码如下所示: var http = require('http'); var url = require('url'); var Iconv = require('iconv').Iconv; var location = 'montreal'; var googleMovies = url.parse("http://www.google.com/movies?near=" + location); var req = http.request(googleMovies, function(response) { var str = ''; response.on('data', function(chunk) { str += chunk; }); response.on('end', function() { var iconv = new Iconv('latin1', 'UTF-8'); str = iconv.convert(str).toString(); […]

节点JS POST多部分/表单数据请求

我想通过http模块使用multipart / form-data内容types从Node JS发送文件。 二进制编码的问题。 当我试图发送简单的文本文件时没关系: url: 'some-site.com', method: 'POST', headers: { 'content-type': 'multipart/form-data; boundary=—–BNDRY', 'content-length': 128 }, body: '——-BNDRY\r\ncontent-type: text/plain\r\ncontent-disposition: form-data; name="file"; filename="file.txt"\r\n\r\ntest\r\n——-BNDRY–' } 但是,当我试图发送文件后读取文件(例如通过FS模式),并将缓冲区string请求正文发送失败。 我尝试了Buffer.toString(encoding)方法和content-transfer-encoding:encoding header的不同组合,但没有成功。 出于某种原因,base64编码也不能工作,我已经用bodyParser进行了testing,好像它不关心内容传输编码:body64中的标头 – 内容仍然是未解码的base64string。 而且我不想使用像node-strongidable或express这样的外部模块来解决我的问题。 谢谢。

将非ASCII字符(变音符号,重音符号)转换为最接近的ASCII码(创build子弹)

我在JavaScript寻找方法来将string中的非ASCII字符转换为最接近的字符,类似于PHP iconv函数。 例如,如果input的string是Rånades på Skyttis i Ö-vik ,它应该被转换为Ranades pa skyttis i o-vik 。 我曾看过phpjs但iconv不包括在内。 是否有可能在JavaScript中执行这种转换,如果是这样的话?

自动检测Node.js中的字符编码

我正在寻找一种方法来准确检测SRT字幕文件的字符编码,对于给定的(用户select的)语言。 我目前正在使用jschardet库进行检测,不幸的是经常错误。 var fs = require("fs"); var jschardet = require("jschardet"); var iconv = require('iconv-lite'); var loadFile = function(path, langCode){ var content = fs.readFileSync(path); var encoding = jschardet.detect(content).encoding.toLowerCase(); return iconv.decode(content, encoding); }; (添加这个只是为了防止我的代码有问题) 有什么比jschardet更准确吗? 也许是一些也接受语言作为论据的东西? 我想这个信息可以提高准确性,但我不熟悉任何接受语言作为参数的图书馆。

为什么Node.js将BOM字符转换为0xFE 0xFF?

我一直在使用节点的fs.readFileSync() ,传递"utf8"作为编码读取input。 当文件包含UTF8(0xEF 0xBF 0xBB)中的BOM字符时 ,它会将其转换为字节序列0xFE 0xFF,而不是Unicode编码。 为什么这样做? 为什么不以UTF8保存BOM的原始序列?

node.js从utf8文件创buildhex缓冲区

我有一个.h264文件,看起来像这样: 0000 0001 674d 401f 95a0 1001 86c0 5283 0203 2000 007d 0000 1d4c 1080 0000 0001 68ee 3c80 0000 0001 65b8 041f fff6 91f2 86db 23e0 5147 1a83 b8d4 3141 87b1 43b8 e329 5fd3 5937 bf10 485f af32 4e74 6138 5611 33e3 0778 e035 85ca 2c00 9320 ffbb 45be 09f8 2e51 a039 9f8c fe17 […]

节点js处理西里尔文编码有什么问题

如果你拿这个非常基本的,非常简单的例子 节点网页: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 这很好用,但是尝试打印一些西里尔字母,如下所示: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Здравей Свят\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 你只会得到严重的解码字符。 我尝试了各种不同的内容types,内容长度,雇用节点iconv模块和其他东西的设置标题的组合,但我发现我的圈子。 基本上,我有基于意思的networking应用程序,我只是想从我的HTML /玉文件显示西里尔语文本到客户端浏览器。 已经几天挖了,没有结果。 我相信如果有人能说出为了使上面的代码工作应该做什么,我会适应它到我的应用程序(因为我已经非常确定,问题来自一些较低的水平,而不是从快递midlewares等..) 据我了解正确 – 这似乎是一个老问题,从某种程度上来说,javascript / v8是如何处理utf-8的。 我看到很多其他的post都抱怨类似的问题,但是因为我试图去适应每个人都没有运气,我想我会冒险发表一个重复的问题,并有我的机会… 我访问的其他一些post/主题: 使用node.js编码错误 […]

在nodejs的post请求中设置charset

我想通过请求模块使用euc-kr字符集将表单数据发送到某个网站。 而且我也使用iconv-lite模块,因为nodejs支持的字符集不是很多。 无论如何,网站使用euc-kr字符集,所以我必须处理表单数据的编码(节点的默认字符集是utf-8)。 但是这样做效果不好,我试图改变一些选项,但是我现在一直呆着,所以你能告诉我一些提示。 // added module request, iconv-lite(extendNodeEncoding) already. function postDocumentForm() { //Lets configure and request request({ url: 'http://finance.naver.com/item/board_act.nhn', //URL to hit headers: { 'Content-Type': 'content=text/html; charset=euc-kr' }, method: 'POST', encoding: 'euc-kr', form: { code:'000215', mode: 'write', temp: '', keyCount: '0', title: "폼 데이터 중 일부가 한글일 때", opinion: '0', body:'인코딩이 제대로 되지 않고 […]

TFS(内部部署)编译输出显示错误的字符编码

我们有TFS2015和build立定义,如下所示: 当我触发构build我得到输出错误的字符编码: 2016-09-07T11:40:29.2722404Z ΓööΓöÇΓöÇ readable-stream@2.1.5 (buffer-shims@1.0.0, inherits@2.0.1, string_decoder@0.10.31, core-util-is@1.0.2, util-deprecate@1.0.2, process-nextick-args@1.0.7, isarray@1.0.0) 2016-09-07T11:40:29.2722404Z run-sequence@1.2.2 node_modules\run-sequence 2016-09-07T11:40:29.2722404Z ΓööΓöÇΓöÇ chalk@1.1.3 (supports-color@2.0.0, escape-string-regexp@1.0.5, ansi-styles@2.2.1, strip-ansi@3.0.1, has-ansi@2.0.0) 2016-09-07T11:40:29.2722404Z vinyl-source-stream@1.1.0 node_modules\vinyl-source-stream 2016-09-07T11:40:29.2722404Z Γö£ΓöÇΓöÇ vinyl@0.4.6 (clone-stats@0.0.1, clone@0.2.0) 2016-09-07T11:40:29.2722404Z ΓööΓöÇΓöÇ through2@0.6.5 (xtend@4.0.1, readable-stream@1.0.34) 2016-09-07T11:40:29.2722404Z gulp-concat@2.6.0 node_modules\gulp-concat 2016-09-07T11:40:29.2762404Z Γö£ΓöÇΓöÇ concat-with-sourcemaps@1.0.4 (source-map@0.5.6) 2016-09-07T11:40:29.2762404Z ΓööΓöÇΓöÇ through2@0.6.5 (xtend@4.0.1, readable-stream@1.0.34) 2016-09-07T11:40:29.2762404Z vinyl-buffer@1.0.0 node_modules\vinyl-buffer 2016-09-07T11:40:29.2762404Z Γö£ΓöÇΓöÇ through2@0.6.5 (xtend@4.0.1, […]