在 node-webkit 页面里调用 Mongous 来操作数据库,update
、insert
中文会乱码,但是 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 一下。好像也只能这样了
真是个奇怪的问题,node 除了 utf-8 都不支持别的编码,竟然还会乱码。
话说这个 Mongous 的作者也是搞笑啊,竟然还 jquery-like syntax。除了用了 dollar 符号之外,没看出哪里是 jquery-like 的。
因为不需要的很复杂的数据库操作,所以选了一个很简单的驱动 jQuery-like 就是一噱头吧
我用 sublime text 2 ,保存的是 utf8 无 Bom
这个问题,,,我也遇到了,有解决了吗?
顶一下
@alsotang 哈哈,被你发现了