MongoDB SpiderMonkey不';我不懂UTF-8

MongoDB SpiderMonkey不';我不懂UTF-8,mongodb,utf-8,v8,spidermonkey,Mongodb,Utf 8,V8,Spidermonkey,如果我将非ASCII字符添加到MongoDB数据库中,那么所有db.find()都无法告诉“检测到非ASCII字符” 这是SpiderMonkey的问题,我必须用UTF-8支持重建它。 我已经试着像以前那样做了 但它不起作用(在我完成所有步骤后,SpiderMonkey没有安装) 我有Ubuntu 11.04。有人知道如何使它工作吗 工作说明如何在Google V8中使用MongoDB也会有所帮助。我正在Ubuntu服务器11.04上使用MongoDB,在使用此说明进行新操作系统安装后安装:

如果我将非ASCII字符添加到MongoDB数据库中,那么所有db.find()都无法告诉“检测到非ASCII字符”

这是SpiderMonkey的问题,我必须用UTF-8支持重建它。 我已经试着像以前那样做了

但它不起作用(在我完成所有步骤后,SpiderMonkey没有安装)

我有Ubuntu 11.04。有人知道如何使它工作吗


工作说明如何在Google V8中使用MongoDB也会有所帮助。

我正在Ubuntu服务器11.04上使用MongoDB,在使用此说明进行新操作系统安装后安装:
一切都开箱即用。从头开始构建MongoDB对您来说至关重要吗?

使用10gen发布的软件包可以很好地工作,但是如果您确实想从源代码处编译支持UFT-8的SpiderMonkey:

curl -O ftp://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
tar xvzf js185-1.0.0.tar.gz
cd js-1.8.5/js/src
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
export CXXFLAGS="-DJS_C_STRINGS_ARE_UTF8"
然后按照

这将安装到/usr/local/lib中,但是mongodb包会在/usr/lib(安装spidermonkey包的地方)中查找它。因此,我们将所有安装的文件从/usr/lib链接到/usr/local/lib

ln -s /usr/local/lib/libmozjs185.so /usr/lib/libmozjs185.so
ln -s /usr/local/lib/libmozjs185.so.1.0 /usr/lib/libmozjs185.so.1.0
ln -s /usr/local/lib/libmozjs185.so.1.0.0 /usr/lib/libmozjs185.so.1.0.0
ln -s /usr/local/lib/libmozjs185-1.0.a /usr/lib/libmozjs185-1.0.a
当然,您可以将它们移动到/usr/lib中,而不是符号链接,但我希望使启用utf的libs远离默认位置,以防止与默认spidermonkey包发生冲突。在没有安装libmozjs包的情况下,apt抱怨mongodb的依赖关系不满足,所以我没有安装它


请记住,如果spidermonkey包升级,它可能会覆盖新lib的符号链接(或者如果您已将lib移动到/usr/local/lib,则会覆盖lib本身)。理想的解决方案是构建自己的包来永久解决依赖性问题。

这个问题是只在shell中发生还是在其他地方发生?(即:来自其中一名司机)
ln -s /usr/local/lib/libmozjs185.so /usr/lib/libmozjs185.so
ln -s /usr/local/lib/libmozjs185.so.1.0 /usr/lib/libmozjs185.so.1.0
ln -s /usr/local/lib/libmozjs185.so.1.0.0 /usr/lib/libmozjs185.so.1.0.0
ln -s /usr/local/lib/libmozjs185-1.0.a /usr/lib/libmozjs185-1.0.a