Как CouchDB обрабатывает UTF-8? - PullRequest
3 голосов
/ 18 марта 2010

Я довольно озадачен CouchDB: если я отправлю запрос PUT с некоторыми строковыми полями JSON, закодированными как UTF-8, не 7-битные символы ASCII преобразуются в escape-последовательность "\ uXXXX". Есть ли способ сказать ему, чтобы он не избежал Юникода?

Ответы [ 2 ]

5 голосов
/ 18 марта 2010

Эти \uXXXX являются правильным способом кодирования символов UTF-8 в Javascript.

Учитывая, что доступ к CouchDB осуществляется с использованием JSON (т.е. данные Javascript) , эти последовательности должны интерпретироваться при использовании данных, и это не должно быть проблемой.

0 голосов
/ 14 ноября 2010

CouchDB использует mochiweb для обработки кодирования / декодирования JSON.

Существует аргумент, который нужно сделать кодировке, которую программа выводит без этих \uXXXX.

Простой способ применения патча:

  1. получить источник CouchDB
  2. edit src / mochiweb / mochijson2.erl
  3. Найти -record(encoder, {handler=null, utf8=false}). вокруг строки 45.
  4. Изменить на utf8=true
  5. сделать чистым; делать; сделать установку

Я нашел обсуждение с Крисом Андерсоном http://erlangine.feautec.pp.ru/?p=232, и оно говорит мне, что есть шанс вывести это поведение из коробки, если кто-то захочет сделать правильный патч для CouchDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...