Unicode 字符串规范化,使本地couchDB完全类似于在Cloudant上复制的couchDB

Unicode 字符串规范化,使本地couchDB完全类似于在Cloudant上复制的couchDB,unicode,utf-8,couchdb,cloudant,unicode-normalization,Unicode,Utf 8,Couchdb,Cloudant,Unicode Normalization,当我的应用程序在我的笔记本电脑CouchDB上本地运行时,它工作得很好,但当我在Cloudant上通过复制运行它时,它会崩溃。我不得不使用js库来让它工作,但这给我的喜好增加了太多kb的js代码(我非常着迷于速度) 我非常希望将我的本地CouchDB编码为与Cloudant使用的相同的utf-8编码,这可能吗?最好的方法是什么 我的应用程序是一个客户端(全部在浏览器中)迷你搜索引擎,它从页面html中包含的csv文件中获取数据。csv由运行ubuntu 14.10的笔记本电脑上的couchDB生

当我的应用程序在我的笔记本电脑CouchDB上本地运行时,它工作得很好,但当我在Cloudant上通过复制运行它时,它会崩溃。我不得不使用js库来让它工作,但这给我的喜好增加了太多kb的js代码(我非常着迷于速度)

我非常希望将我的本地CouchDB编码为与Cloudant使用的相同的utf-8编码,这可能吗?最好的方法是什么

我的应用程序是一个客户端(全部在浏览器中)迷你搜索引擎,它从页面html中包含的csv文件中获取数据。csv由运行ubuntu 14.10的笔记本电脑上的couchDB生成。该应用程序为双语、英语和法语:

我编写了一个建议功能(在原型上,而不是在主网站上),在用户打字时向她建议单词。这方面的数据来自通过复制笔记本电脑CouchDB数据库而创建的Cloudant数据库


问题在于,从Cloudant数据库检索到的像“bière”这样的重音词的编码方式与我的本地CouchDB不同。通常,点击单词“bière”会触发csv中对该单词的搜索,但搜索失败,即使csv中写有“bière”。当建议来自我的localhost开发服务器上的CouchDB数据库时,这种情况不会发生。

我在Google上搜索了很多,发现使用Unicode规范化“NFC”是最简单的方法。 由于我的localhost couchDB和大多数浏览器似乎都使用“NFC”字符串规范化,因此找到一种使Cloudant数据库符合“NFC”的方法将更加容易,也不容易出现错误

例如:“Bières”(法语中的啤酒)

couchDB:“\u0042\u0069\u00E8\u0072\u0065\u0073”

Cloudant:“\u0042\u0069\u0065\u0300\u0072\u0065\u0073”


另一种可能是创建一个json文件,其中包含两个数据库中不同的所有单词字符串的列表,并使用它进行检查。在我的例子中,这给出了一个25kb的小文件。随着更多数据添加到数据库中,问题将是同步。实现起来并不复杂,但由于HTML5应用程序日益国际化,这可能会导致错误。

您能提供一个您看到的问题的描述/示例吗?Cloudant和CouchDB的行为应该是相同的。另外,了解本地CouchDB设置(Erlang版本、操作系统等)也很有用。@WillHolley I补充了更多说明。我想制作一个非常简单的应用程序:一个具有微编辑功能(500-1000字/文档)的小型搜索引擎。可能已经存在类似的内容…可能是我可以使用\W创建一个regExp来查找基本拉丁字符集之外的字符,并且仅使用规范化这些字符。我需要进行测试,以查看这样是否有任何速度提升。