我想将erlang术语(基于erlang的后端)发送到Web浏览器。使用类似的东西在erlang端编码术语很容易:
term_to_binary(Term)
或:
binary_to_list(term_to_binary(Term))
问题当然是乱码垃圾出现在浏览器端。
问题:我是否可以在浏览器端使用某种编码,或者更可能的是,我可以在浏览器端接受一些Content-Type来解读这个?
感谢。
答案 0 :(得分:2)
答案 1 :(得分:2)
有piqi在.piqi(其记录定义语言),json,xml和protobuf之间提供了广泛的映射机制。这是一个非常酷的工具,我们一直用它来映射所有这些格式。 通常当我构建需要向其他东西提供某种数据的东西(在Erlang中)时,我会从定义结构的piqi定义文件开始。 piqic编译器生成Erlang记录定义和转换代码,以便轻松进行转换。
强烈推荐,但对你正在做的事情可能有点过分。
答案 2 :(得分:1)
使用base64对其进行编码。通过ajax获取它,然后使用本机window.atob
或任何众多可用库进行解码。
答案 3 :(得分:1)
如果是网页浏览器,我会选择Json字符串,它是unicode,浏览器支持它。
也许考虑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或......