Je suis assez perplexe avec CouchDB: si j'envoie une requête PUT avec des champs de chaînes JSON encodés en UTF-8, les caractères ASCII non 7 bits sont convertis en séquence d'échappement "\ uXXXX". Y at-il un moyen de lui dire de ne pas échapper à UNICODE?Comment CouchDB gère-t-il UTF-8?
3
A
Répondre
5
Ces \uXXXX
sont la façon correcte de coder les caractères UTF-8 en Javascript. Considérant que CouchDB est accédé en utilisant JSON (données Javascript), ces séquences doivent être interprétées lors de l'utilisation des données, et cela ne devrait pas poser de problème.
0
CouchDB utilise mochiweb pour gérer le codage/décodage JSON.
Il existe un argument de routine de codage qui indique à la sortie \uXXXX
.
Une façon simple d'appliquer le correctif est:
- obtenir CouchDB la source
- modifier src/mochiweb/mochijson2.erl
- Trouver
-record(encoder, {handler=null, utf8=false}).
autour de la ligne 45. - Modification
utf8=true
- faire nettoyer; faire; make install
J'ai trouvé la discussion avec Chris Anderson http://erlangine.feautec.pp.ru/?p=232 et il me dit qu'il ya une chance d'obtenir ce comportement hors de la boîte, si les soins de quelqu'un pour faire patch adapté à CouchDB.
Je suis également confronté à un problème lors de la récupération des caractères DBCS stockés dans le compartiment CouchDB. Quelqu'un peut-il aider avec cela? – Jaynil