2015-06-14 3 views
0

Я работаю над тем, что будет читать текстовые сообщения пользователя и экспортировать их в файл csv, который они могут загрузить. Сообщения извлекаются из стороннего веб-интерфейса - я по существу использую js для захвата html каждого сообщения и его компиляции по мере необходимости. Содержимое каждого сообщения добавляется к переменной, которая после того, как все сообщения собраны, передается новому Blob, который затем загружается.Работа с символами на основе их шестнадцатеричных кодов UTF-8

Проблема, с которой я сталкиваюсь, заключается в том, что в этом веб-интерфейсе emoji представлены как изображения, а не символы. Таким образом, при написании сообщения, содержащего смайлик в файл, результат выглядит так:

"Blah blah blah <img height="18px" width="18px" class="emoji adjustedSpriteForMessageDisplay spriteEMOJI sprite-1f612" data-textvalue="%F0%9F%98%92" src="assets/blank.gif">" 

Теперь из этого образа, мы можем получить 2 работоспособные значения:

UTF-8 шестнадцатеричное значение

F09F9892 

и код кодировки Unicode (я могу иметь в виду это неправильно, я мало знаю о кодировании).

U+1f612 

Теперь, что я хочу сделать, это либо из этих значений (в зависимости от того работает лучше), и записать его в файл CSV, как и сам характер. Так что, при просмотре файла CSV в текстовом редакторе или что там у вас, казалось бы, как

enter image description here

Хотя я понятия не имею, где даже начать с этого. Возможно, это так же просто, как бросать некоторый синтаксис вокруг значений символов, но я не смог ничего получить от Google, потому что я недостаточно разбираюсь в кодировании, чтобы знать, что делать с Google.

+0

decodeURI ('% F0% 9F% 98% 92') -> [smile] (http://unicode-table.com/en/1F612/) – befzz

ответ

1

Я предлагаю предварительную обработку данных, как вы захватить его с веб-страницы вместо того, чтобы извлекать его из строки впоследствии.

Вы можете использовать decodeURIComponent() декодировать процент закодированных строк:

decodeURIComponent('%F0%9F%98%92') 

Объедините это с JQuery, чтобы получить доступ к data-textvalue атрибута по:

decodeURIComponent($(element).data('textvalue')) 

Я создал простой пример на JSFiddle. По какой-то причине emoji не отображается правильно на экране результатов в моем браузере, но это проблема шрифта. При просмотре результата с помощью инспектора DOM (или копирования текста в другое приложение) результат отображается с смайликом.

Смежные вопросы