Erlang中文编码(一)

最近有朋友使用Erlang遇到一个编码问题。Erlang里面直接把汉字弄成串是这样的:

24> A = "汉字".
[27721,23383]

但是有时候汉字会出现这种utf8格式的:

[228,184,173,230,150,135]

有时候需要把utf8的ascii码转成第一种,这就需要下面的方式:

%% ASCII码转为Erlang中正常的中文编码
asc_to_cn(Data) when is_list(Data) ->             
    TData = list_to_bitstring(Data),
    [Res] = io_lib:format("~ts",[TData]),
    Res.

或者是下面这种方式:

{ok, Res} = asn1rt:utf8_binary_to_list(list_to_binary(Data))

参考资料:http://www.cnblogs.com/ribavnu/p/3744022.html

posted @ 2019-12-21 18:01  qingchuwudi  阅读(709)  评论(0编辑  收藏  举报