Tag: utf 8

JSON.stringified()对象中的文本编码问题

我有一个index.html发送文本到PHP代码。 这个PHP通过POST(curl)把它重新发送到一个Node.js服务器,插入一个JSON消息(utf8编码) //Node.js server file (app.js) — gets the json and shows it in a <script> to save it in client JS render(index, {json:{string:"mystring"}}) //Template to render (index.ejs) var data = <%=JSON.stringify(json)%>; 这样我就可以将JSON中的这些variables传递给数据。 JSON比这里更大,我只写了创buildbug的部分:这里包含的string会产生一个“无效字符”JS错误。 我该怎么办 ? 我应该使用哪种编码/解码/转义? 我到处都是utf-8,就像所有其他的string一样,即使是德文或阿拉伯文字也行。 在这种情况下,这是下面的“mystring”打破了应用程序: 如果我删除了红色圆圈中的字符,它的工作原理。 这是string,因为它是在我收到的JSON: "Otto\nTheater-, Konzert- und Gpb\n\u2028\u2028Rhoasse\u00dfe 20\u2028\n51065 K\u00f6ln\n\nTelefon: 0000-000000-0\u2028\nTelefax: 0000-000000\n\nE-Mail: address@mail.com\u2028" 因为它是一个用户input的文本,我必须处理这种字符。 我没有访问代码的PHP部分,只能到nodeJS和客户端JS。 我怎样才能find并删除/转换这些字符在JS?

ER_TRUNCATED_WRONG_VALUE_FOR_FIELD将一些string保存到mysql

我正在使用node.js, node-mysql npm模块,在mysql( sql_mode=STRICT_ALL_TABLES )中有一个utf8列,并且可以正常存储“常规”的utf8字符,但是对于某些input,它会抛出: AssertionError: Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF3\xA5\xB5\xA5\xEF\xBF…' 我想这是由于一些字符在utf8之外。 我知道可以在mysql中使用utf8mb charset,但在这种情况下,我不关心这些字符,只想从string中删除它们,而不是更改mysqlconfiguration。 是否有可能使用node.js删除这些字符?

utf8 console.log使用node.js输出

我有一个MySQL数据库的utf8信息。 我想用console.log输出到控制台。 但它显示“框”字符,而不是utf8数据。 我在哪里丢失数据? 我该怎么办才能解决这个问题? 从数据库读取数据时出现问题? (使用felixge-node-mysql-v0.9.5-1)或输出到控制台? (使用console.log)也许它的控制台本身(Windows命令窗口设置为字体“Lucida控制台”) 谢谢。 更新:我现在相信它的Windows命令窗口的字体的问题。 当我使用PowerShell窗口运行相同的节点脚本时,我看到不同的字符,看起来不像我所期望的。 无论谁,当我尝试粘贴到这个浏览器窗口,他们突然改变到正确的字体和字符。

使用utf-8/16(俄文,中文,日文字符)的redis-node(nodejs)

有没有人成功地使用俄文/中文/日文字符与redis-node或任何其他redis库(使用nodejs)存储/从Redis接收消息(2.0及以上)? 我相信这些消息的编码/解码取决于客户端,而不是Redis。 如果是这样,是否有任何库提供这种编码/解码或有另一个库可用于此目的? 任何工作代码的例子将不胜感激。

如何解码节点中的gzip或utf-8响应?

我正在使用节点请求模块来做一些获取请求。我得到的响应体 { body: '\u001f?\b\u0000\u0000\u0000\u0000\u0000……………' } 我有这样的标题参数和请求, var params = { url: options.url, headers: { 'Accept-Encoding': "gzip, deflate", 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Charset' : 'utf-8', 'Content-Type' : 'application/json', 'User-Agent' : 'Mozilla/5.0' } }; request(params, function (error, response, body) { //response.setEncoding('utf8'); //response.setEncoding('binary'); console.log(response); }) 我试过了 //response.setEncoding('utf8'); //response.setEncoding('binary'); 和new Buffer(response.body, 'ascii').toString('utf8')来读取正文内容,但它不工作。 如何正确读取正文内容为JSON?

从远程服务器获取JSON文件(包含希伯来语值)并在Node.js中parsing它

我有一个dynamic的JSON文件托pipe在远程服务器(充当某种API),它也包含一些希伯来文字的值。 如何保存响应并parsing它为一个JSON对象? 这就是我迄今为止使用请求( https://www.npmjs.org/package/request ): var options = { url: 'http://www.AWEBSITEHERE.com/file.json', method: 'GET' }; function callback(error, response, body) { if (!error && response.statusCode == 200) { var info = JSON.parse(body); // … } } request(options, callback); 而且这个代码在访问时给出以下错误: SyntaxError: Unexpected token ∩┐╜ at Object.parse (native) at Request.callback [as _callback] (C:\Sites\node\proj\routes\inde x.js:21:29) at Request.self.callback (C:\Sites\node\proj\node_modules\request\ request.js:122:22) at […]

如何通过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'这样的一般编码。 我是否应该使用不同的方法来获取文件?

自动检测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更准确吗? 也许是一些也接受语言作为论据的东西? 我想这个信息可以提高准确性,但我不熟悉任何接受语言作为参数的图书馆。

将数据库以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(); […]

Nodejs转换传入streamWindows 1252或UTF-8

我创build了nodesjs net服务器,发送者在Windows 1252发送数据。 题: 我怎样才能将数据从Windows 1252转换为我的应用程序的其余部分所需的utf-8 ? 根据: https : //nodejs.org/api/stream.html#stream_readable_setencoding_encoding 调用此函数以使stream返回指定编码的string而不是Buffer对象。 client.setEncoding 'utf8'应该以utf-8格式返回一个string,但是我仍然会在我的string中得到questionmarks而不是例如ä,ö,ü 码 exports.createServer = (io) -> server = net.createServer( { allowHalfOpen: true, pauseOnConnect: false }, (socket)-> createClient(socket, io) ) server.listen portHl7 server.on('error', (err) -> if (err.code == 'EADDRINUSE') console.log 'Address in use, retrying…' setTimeout( () -> server.close() self.createServer() 1000 ) ) server.on('close', […]