Articles of Unicode

Node.JS Big-Endian UCS-2

我正在与Node.JS合作。 节点的缓冲区支持little-endian UCS-2,但不是我需要的big-endian。 我会怎么做?

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')); 但是我得到了同样的结果。 任何想法?

在node.js应用程序中读取文件时出现奇怪的Unicode字符

我正在尝试编写一个读取一组文件的节点应用程序,将它们分成几行,并将行放入一个数组中。 很简单。 它工作在不同的文件,除了我正在使用的一些SQL文件。 出于某种原因,当我分割线时,我似乎正在获得某种unicode输出。 该应用程序看起来像这样: fs = require("fs"); var data = fs.readFileSync("test.sql", "utf8"); console.log(data); lines = data.split("\n"); console.log(lines); input文件如下所示: use whatever go 输出如下所示: use whatever go [ ' u\u0000s\u0000e\u0000 \u0000w\u0000h\u0000a\u0000t\u0000e\u0000v\u0000e\u0000r\u0000', '\u0000g\u0000o\u0000', '\u0000' ] 正如你所看到的,在文件的开头有一些不可识别的字符。 在读入数据并直接输出之后,除了这个字符以外,看起来还好。 然而,如果我试图把它分成几行,我就得到了所有这些类似unicode的字符。 基本上所有的实际字符在每个字符开头都带有“\ u0000”。 我不知道这里发生了什么,但似乎与文件本身中的字符有关。 如果我复制并粘贴文件的文本到另一个新的文件,并在新文件上运行应用程序,它工作正常。 我假设无论是造成这个问题正在剥离复制和粘贴过程中。

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设置的编码。

为什么这个代码卡住node.js – 在Javascript上的错误?

我试图运行这个正则expression式,但它卡住了我的控制台。 为什么? var str = "Шедевры православной музыки – 20 золотых православных песен"; str.match(/^(([\u00C0-\u1FFF\u2C00-\uD7FF]+[^az\u00C0-\u1FFF\u2C00-\uD7FF]*)+) [az]+[^\u00C0-\u1FFF\u2C00-\uD7FF]*$/i);

Node.js源代码需要什么编码?

我做了一些Googlesearch,但是我得到了与编码string或文件相关的结果。 我可以用UTF-8 编写我的Node.js JavaScript源代码吗? 我可以在注释,string或variables名称中使用非ASCII字符吗? ECMA-262似乎需要UTF-16编码 ,但Node.js不会运行UTF-16编码的.js文件。 但是,它将运行UTF-8源并正确解释非ASCII字符。 那么这是devise还是“意外”呢? 它是否指定支持UTF-8源代码?

Node.js Emojiparsing

我试图parsing一个传入的string,以确定它是否包含任何非表情符号。 我已经阅读了Mathias撰写的这篇伟大的文章,并利用本地punycode进行编码/解码,并为正则expression式生成regenerate生成。 我也使用EmojiData来获取我的emojis字典。 所有人都说,某些表情符号仍然是令人讨厌的小丑,并拒绝匹配。 对于某些表情符号,我继续得到一对代码点。 // Example of a single code point: console.log(punycode.ucs2.decode('💩')); >> [ 128169 ] // Example of a paired code point: console.log(punycode.ucs2.decode('⌛️')); >> [ 8987, 65039 ] Mathias在他的文章中提到了这个(并给出了punycode的例子),但即使使用他的例子,我也得到了一个不正确的回答: function countSymbols(string) { return punycode.ucs2.decode(string).length; } console.log(countSymbols('💩')); >> 1 console.log(countSymbols('⌛️')); >> 2 检测一个string是否包含所有emojis的最好方法是什么? 这是为了一个概念的certificate,所以解决scheme可以像需要那样的蛮力。 —更新— 上面我讨厌的表情多一点背景。 这些在视觉上是相同的,但实际上不同的unicode值(第二个来自上面的例子): ⌛ // \u231b ⌛️ // \u231b\ufe0f 第一个很好,第二个不好。 […]

如何在google v8(和nodejs)中呈现32位unicode字符

有没有人有一个想法,如何在谷歌V8,同时驱动谷歌浏览器和nodejs的JavaScript虚拟机,呈现unicode“星平面”字符(其CID超出0xffff)? 有趣的是,当我给谷歌浏览器(它标识为11.0.696.71,在Ubuntu 10.4上运行)这样的HTML页面: <script>document.write( "helo" ) document.write( "𡥂 ⿸𠂇子" ); </script> 它将正确地呈现“宽”字符𡥂与“窄”字符一起,但是当我在nodejs(使用console.log() )中尝试相当于我得到一个单一的 (0xfffd,replace字符)字符代替。 我也被告知,无论不可理解的原因,谷歌已决定使用16位宽的数据types来实现字符。 虽然我觉得这很愚蠢,但代理码点的devise恰恰是为了使'星际码点'通过16位挑战的通道'传送'。 不知何故,在chrome 11.0.696.71里面运行的v8似乎使用了这个unicode-foo或者其他的魔术来完成它的工作(我似乎记得几年前,我甚至在静态页面上总是得到盒子)。 是的, node –version报告v0.4.10 ,要弄清楚如何从中获得一个v8的版本号。 更新我做了咖啡脚本中的以下内容: a = String.fromCharCode( 0xd801 ) b = String.fromCharCode( 0xdc00 ) c = a + b console.log a console.log b console.log c console.log String.fromCharCode( 0xd835, 0xdc9c ) 但那只能给我 这背后的思想是,因为处理unicode的JavaScript规范的braindead部分似乎要求? /不彻底禁止? /允许? 使用代理对,那么也许我的源文件编码(utf-8)可能是问题的一部分。 毕竟,在utf-8中有两种编码32位编码点的方法:一种是写出第一个替代品需要的utf-8字节,然后是第二个替代品所需的utf-8字节。 […]

Node.js对Unicode的支持有多好?

根据其语言规范, JavaScript在Unicode中有一些问题(如果我理解的话),因为文本总是作为一个由16位组成的内部字符处理。 JavaScript:好的部分以类似的方式说出来。 当你search谷歌的V8支持UTF-8,你会得到矛盾的说法。 那么:Node.js中Unicode支持的状态是什么(0.10.26是这个问题的当前版本)? 它处理UTF-8将所有可能的代码点正确,或不是吗? 如果不是:可能的解决方法是什么?

Node.JS刮编码?

我使用Node.JS中的 这个请求库来获取这个页面 ,并使用cheerioparsing正文。 在parsing的响应正文上调用$.html()发现页面的title属性是: <title>Le Relais de l'Entrec?te</title> …当它应该是: <title>Le Relais de l'Entrecôte</title> 我已经尝试设置请求库的选项,包括encoding: 'utf8' ,但似乎没有改变任何东西。 我如何保留这些字符?