做毕设碰到了 node-webkit 的乱码问题,求帮助
发布于 11 年前 作者 599316527 7029 次浏览 最后一次编辑是 8 年前

node-webkit 页面里调用 Mongous 来操作数据库,updateinsert 中文会乱码,但是 find 出来的中文是正常显示的。

命令行里纯 node 用 Mongous 插入读取中文都是正常的。

所以的文件都是 utf-8 的,head 也是这样的 <meta charset="utf-8">


补充:发现一个奇怪的问题

a.text = '星期一' + (new Date()).getDay();
Mongo('test.write').insert(a);

这样插入的就是正常的 "text" : "星期一1"

a.text = '星期一1'; 
Mongo('test.write').insert(a);

这样就乱码了 "text" : "\u001ff\u001fg"


继续扩展

var day = ['日', '一', '二', '三', '四', '五', '六'];
a.text = '星期' + day[(new Date()).getDay()] ;
Mongo('test.write').insert(a);

也是正常显示的


真是莫名其妙,只要在原本的字符串后面再 + 上任意字符就可以避免这个问题了。Node-Webkit 中的 + 方法比较特殊?

目前的解决方法就是在写入前在字符串后面加上一个空格,然后在读取时 trim 一下。好像也只能这样了

6 回复

真是个奇怪的问题,node 除了 utf-8 都不支持别的编码,竟然还会乱码。

话说这个 Mongous 的作者也是搞笑啊,竟然还 jquery-like syntax。除了用了 dollar 符号之外,没看出哪里是 jquery-like 的。

因为不需要的很复杂的数据库操作,所以选了一个很简单的驱动 jQuery-like 就是一噱头吧

我用 sublime text 2 ,保存的是 utf8 无 Bom

这个问题,,,我也遇到了,有解决了吗?

@alsotang 哈哈,被你发现了

回到顶部