在 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 一下。好像也只能这样了