Tag: Unicode

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?

如何检测同形文本,使用node.js进行unicode欺骗

用户可以在我们的网站上获得自己的子网站,以便www.example.com/subsite/gary成为特定的用户子网站。 然而,我担心可能会发生同形/ unicode欺骗攻击,其中恶意用户使用不同的用户名创build帐户,但是unicode字符与其他用户看起来是一样的,这样可以传递一个声称是gary的链接当它实际上是别人。 我看到这个看起来成熟的唯一的解决scheme是UCAPI http://www.casaba.com/products/UCAPI/,但我不想使用它,我想有一些与node.js一起工作。 (如果需要,我宁愿实施自己) 有没有人可以通过node.js检查这种同形/欺骗攻击?

在Node.JS中允许所有/最普通的可打印的Unicode字符?

我有一个Node.JS应用程序,目前不允许在文件名中的Unicode字符。 我想继续,并开始允许某些字符。 例如Café或者你好会被允许作为文件名。 不过,我知道NULangular色攻击是可能的,并且有可能令人烦恼的控制angular色。 真的,所有的控制字符(和大多数不可打印的字符)应该被阻止。 首先,我打算获取一些“安全”Unicode字符的范围,并手动对其进行编码。 但是,有没有更快的方法? 也许所有的文件系统安全范围已经列在我可以轻易获得的地方?

为什么JSON.parse会阻塞nodejs中的编码字符?

我试图在Google的词典semi-api中查找“flower”这个词。 资源: https://gist.github.com/DelvarWorld/0a83a42abbc1297a6687 长话短说,我用一个callback参数调用JSONP,然后把它重新排列。 但它遇到了这个障碍: undefined:1 ple","terms":[{"type":"text","text":"I stopped to buy Bridget some \x3cem\x3ef ^ SyntaxError: Unexpected token x at Object.parse (native) 谷歌正在为我转义HTML字符,这是好的,但JSON.parse不能处理它们? 什么是我看出这是很好的作品: $ node > JSON.parse( '{"a":"\x3cem"}' ) { a: '<em' } 我不明白为什么我的叮当声会崩溃 编辑这些都是很好的信息反馈,但没有一个帮助我摆脱堆栈跟踪。

节点postgres UTF密码错误

我正在使用https://github.com/brianc/node-postgres pg模块。 显然,我不能使用Unicode密码连接到数据库。 从相同的位置psql连接参数OK。 使用Node.js,它会使password authentication failed for user 。 当我检查与console.log()我确切地看到我的期望。 如果我在数据库和连接string中将密码更改为ASCII,则一切正常。 但我需要旧的Unicode密码被消耗… 我尝试了https://github.com/brianc/node-postgres/wiki/Client new pg.Client({…password: Código 和 conString = "postgres://…Código@" 我知道ODBC( Driver={PostgreSQL UNICODE}; )和JDBC( ;Unicode=true )在连接string中都支持UTF。 我没有发现任何关于Node.js pg模块的UTF支持。 请帮忙。 我看到了http://www.connectionstrings.com/postgresql/并阅读了https://github.com/brianc/node-postgres上的文档。 请帮助这个问题。 谢谢!

Javascript Node.js Unicode正则expression式

我需要inputvalidation,良好的inputvalidation,以保持一切清洁。 所以我想在“全名”,国际上严格的正则expression式,所以我需要Unicode支持。 我下载了XRegExp,它将“他们的格式”编译为正则expression式,并支持Unicode: 正确的名字: 约翰·埃尔克耶德 安德烈·斯文森 Marco d'Almeida Kristoffer la Cour 不正确的名字: 汉斯 H4nn3安徒生 马丁·亨里克森! 所以我需要: 匹配unicode字母(a,æ) 匹配unicode口音(á,Ë等) 匹配unicode连字符( – _等) 在PHP中,我可以执行以下操作来匹配: \p{L} (unicode letter) \p{Mn} (unicode accents) \p{Pd} (unicode hyphens) 我发现,我可以用XRegExp做: ^ \ p {L} + $会匹配'日本'所以只有一个字母的作品,但我怎样才能弄清楚如何做这些unicode的口音,hypens? 感谢帮助。

如何用Node.js中的ASCII引号replace非ASCII引号?

我试图用ASCII单引号( ' )来replace所有出现的非ASCII引号(如' , ' , “和” ),因为当我写入一个文件时,它们会出现这样的结果: Peterson’s ,而不是Peterson's 。 我试着用下面的正则expression式: paragraph.replace(/"/g, "'"); 但是这不起作用。 我如何指定我想在我的正则expression式中replace所有这些非ASCII字符?

显示Unicode乱码而不是string的ObjectID

当我debugging我的节点应用程序时,我的ObjectId是由Unicode字符表示,如ObjectID {id: RýÕ/H}而不是实际可读的ID。 这是一个截图 。 有谁知道这是什么原因? 我正在使用Crunchbang Waldorf x64上的WebStorm 7.0.1。 更新:检查节点检查器后,我得到了相同的结果: http : //i.imgur.com/8dxOGhd.png 我唯一可以看到我的ObjectId是正确的,如果我在Robomongo(一个MongoDB GUI)中检查它们,或者如果我从Node应用程序将它们login到控制台。

如何使用UTF-16的ICU?

我正在研究在本地Node.js模块中使用ICU进行Unicodestring处理,因为在我看来, v8::String (根据这些文档 )没有用于此目的的C ++ API。 据我所知,V8需要ExternalStringResource和其他API中的UTF-16,所以我想使用ICU进行UTF-16处理。 我特别需要: 迭代UTF-16string的字符(而不仅仅是16位代码单元) 告诉UTF-16string包含的字符数(不只是16位代码单元) 所以我看了一下ICU文档,发现了UnicodeString和CharacterIterator类。 但是, UnicodeString没有fromUTF16方法,只有fromUTF8和fromUTF32 。 我不确定的另一件事是, UnicodeString构造函数是否复制我给与否的数据? 我非常希望使用零复制的方法,我只是与一个不可变的对象工作,所以它不应该执行任何复制操作,只需使用我指向它的缓冲区。 我也不确定是否可以使用UCharIterator (假设我可以以某种方式从我的UTF-16string转换UChar* )。 所以我的问题是: 我如何使用ICU来达到上述目的? 在此先感谢您的答案!

node.js – 如何识别无效的UTF-8?

我正在实现对UTF-8的支持,而我正面临一个问题。 我想收到无效的UTF-8错误。 好的: var utf8 = require('utf8'); try { var result = utf8.decode(req.params.container); console.log('a valid utf8 (from ', req.params.container , '): ', result); self.bucket_name = req.params.container; next(); } catch (e) { console.log('Invalid UTF-8 (', req.params.container, '): ', e); res.statusCode = 412; res.end('Invalid UTF8 or contains NULL'); } finally { ; } 然后它说,这个Unicodestring是无效的:嗡嗡ΩΩऀ鐌㜄툏㜃댋댋蔈蔈蔈㜅 但是一些python库会说这个string是有效的unicode。 所以我的问题是双重的:(1)是有效的UTF-8,(2)我怎样才能确定一个string是否是有效的utf-8,在node.js?