MongoDB 个特殊字符

MongoDB special characters

我已将初始化文件插入 MongoDB:

db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "Österreich" }})

如果我用 db.User.find() 调用这个条目,我会得到以下结果:

{ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "�sterreich" } }

带有特殊字符“�sterreich”的单词不正确。

有人知道我可以在 mongodb 中做什么来解决这个问题吗?

猜猜你可以在字符串中使用 HTML 代码

代码:

您可以使用 ö ; 将 spl 字符保存在数据库中。

db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "österreich" }})

并且在使用 db.User.find() 调用此条目时,您将获得以下内容:

{ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "Österreich" } }

参考:

http://www.starr.net/is/type/htmlcodes.html

Replace multiple characters in a string in javascript

希望对您有所帮助。

JSON 和 BSON 只能编码/解码有效的 UTF-8 字符串,如果您的数据(包括输入)不是 UTF-8,则需要在将其传递给任何 JSON 之前对其进行转换依赖系统,像这样:

$string = iconv('UTF-8', 'UTF-8//IGNORE', $string); // or
$string = iconv('UTF-8', 'UTF-8//TRANSLIT', $string); // or even
$string = iconv('UTF-8', 'UTF-8//TRANSLIT//IGNORE', $string); // not sure how this behaves

我个人更喜欢第一个选项,请参阅 iconv() 手册页。其他备选方案包括:

mb_convert_encoding("奥地利", "UTF-8", "ISO-8859-1");

  • utf8_encode(utf8_decode($string))

您应该始终确保您的字符串是 UTF-8 编码的,即使是用户提交的字符串也是如此。