2012-03-12 2 views
0

Lors du test de notre API, un de nos testeurs a découvert que lorsqu'ils insèrent une icône emoji sur leur appareil iOS, ils l'enregistrent avec succès dans notre MongoDB, mais ne reçoivent aucune réponse lors de la récupération. . J'ai confirmé ceci, et notre serveur (Node.js) obtiendra la demande, et commencera à envoyer les données, mais (je pense) quelque part le long de la ligne, les caractères d'emoji "terminent" la demande, ou la provoquent jamais finir dans les yeux du client iOS.Icônes Emoji interrompant l'appel REST

Quelqu'un a-t-il déjà ressenti cela? Si oui, quelle est la meilleure façon de gérer les icônes emoji? Je sais que l'one-way est d'unescape() chaque chaîne qui sort de Node.js, mais cela semble être une approche pas si propre, et aussi je devrais décoder le texte du côté client.

+0

Etes-vous sûr que la requête de MongoDB fonctionne correctement? Pouvez-vous interroger les documents contenant les caractères emoji du shell MongoDB? –

Répondre

1

MongoDB supporte utf8, malheureusement les caractères emoji sont utf8mb4 que de nombreuses applications et langues ne supportent pas encore (y compris MongoDB). Unescape semble être la meilleure chose à faire actuellement.

Vous pouvez également le stocker en tant que binaire, mais vous devrez alors l'interroger différemment et ne pas pouvoir interroger avec des expressions régulières (mais conserver les caractères natifs).

+0

Comment puis-je décompacter de telles chaînes? – Mic92