这篇文章主要介绍“erlang的汉字字符串和二进制的相互转换并还原成汉字打印的方法”,在日常操作中,相信很多人在erlang的汉字字符串和二进制的相互转换并还原成汉字打印的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”erlang的汉字字符串和二进制的相互转换并还原成汉字打印的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1> Hanzi = <<”汉字”/utf8>>. <<230,177,137,229,173,151>> 2> io:format(“~ts”,[Hanzi]). 汉字ok 3> io:format(“~w”,[Hanzi]). <<230,177,137,229,173,151>>ok 22> unicode:characters_to_binary(“中国”). <<228,184,173,229,155,189>>
中文字符,在Erlang的存储方式,可以是List,也可以是Binary。
如果以List方式存储,即将中文字符,转为Unicode编码(长整数格式);
如果以Binary方式存储,即将中文字符,转为UTF-8编码。
至于Unicode与UTF-8的区别,简单来说,Unicode是一个码表,UTF-8是Unicode编码的一种表示方法。具体的区别,大家可问下谷歌或度娘。
start() ->
Str = “中国”,
io:format(“Unicode list is: ~p~n”, [Str]),
Bin = unicode:characters_to_binary(Str),
io:format(“Unicode binary is: ~p~n”, [Bin]),
Str1 = unicode:characters_to_list(Bin, utf8),
io:format(“utf8 binary to list is: ~p~n”, [Str1]).
Eshell V6.4 (abort with ^G)
(andy1@pc.com)1> Unicode list is: [20013,22269]
(andy1@pc.com)1> Unicode binary is: <<228,184,173,229,155,189>>
(andy1@pc.com)1> utf8 binary to list is: [20013,22269]
(andy1@pc.com)1>
其中用到了unicode库函数,如果使用普通的erlang:list_to_binary或erlang:binary_to_list,会有编码问题。
在开发过程中,使用的一些第三方库,对中文支持或多或少都有些问题,各位按照此规则调试,可以解决。
到此,关于“erlang的汉字字符串和二进制的相互转换并还原成汉字打印的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。