2012-03-22 4 views
1

Я бы хотел отправить термины erlang (конец назад на основе erlang) в веб-браузер. Достаточно легко кодировать термин на Erlang стороны, используя что-то вроде:Отправить erlang binary в браузер

term_to_binary(Term) 

или:

binary_to_list(term_to_binary(Term)) 

Проблемы, конечно, в том, что вскарабкался мусор появляется на конце браузера.

Вопрос: Есть ли какая-либо кодировка, которую я могу использовать в конце браузера, или, более вероятно, какой-то Content-Type, который я могу принять в конце браузера, чтобы разрешить это?

Спасибо.

+0

Из любопытства, не могли бы вы дать нам причину, почему вы это сделаете? – selle

ответ

1

Код кодировки base64. Получите его через ajax, затем декодируйте либо с помощью родного window.atob, либо любого из многочисленных доступных libs.

+1

Я не буду трогать ajax. Я просто запускаю стандартные html, cgi и т. Д. Любые другие предложения? –

+0

это должно быть 'io_lib: format/2' –

+0

Вряд ли base64 может помочь прочитать термины erlang в браузере. –

2

Использование io_lib:format("~p",[Term]). Он создаст строковое представление эрлангового термина, который можно показать на веб-странице. Рассмотрим также проверку этого question и его answer.

1

Если это для веб-браузера, я бы пошел на строку Json, это юникод и браузеры поддерживают его nativaly.

Может рассмотреть JSon и сделать что-то подобное для строк:

1> HelloJerome = "Hello Jérôme". 
"Hello Jérôme" 
2> HelloJeromeBin = list_to_binary(HelloJerome). 
<<"Hello Jérôme">> 
3> HelloJeromeJson = << <<"{\"helloJerome\":\"">>/bits, HelloJeromeBin/bits, $\", $} >>. 
<<"{\"helloJerome\":\"Hello Jérôme\"}">> 

В консоли браузера:

jerome = JSON.parse('{\"hello\":\"Hello Jérôme\"}') 

Теперь

jerome.hello == "Hello Jérôme" 

Есть некоторые хорошие Lib там ejson или mochijson2 являются классическими, но ktuo или ...

2

Существует piqi, который обеспечивает обширные механизмы отображения между .piqi (его языком определения записи), json, xml и protobuf. Это действительно классный инструмент, который мы все время используем для сопоставления всех этих форматов. Обычно, когда я что-то создаю (в Erlang), который должен предоставить какие-то данные другому, я начинаю с файла определения piqi, который определяет структуру. Компилятор piqic генерирует определения записи Erlang и код преобразования, чтобы сделать конверсии легко.

Очень рекомендуется, но это может быть излишним для того, что вы делаете.