erlang binary,中文字符

博客介绍了计算机编码知识,如ASCII、Unicode、UTF - 8等。还讲解了Erlang binary语法,将其作为数据处理结构理解,介绍了语法格式及各参数含义。此外,指出Erlang中binary可当字符串用,且说明了处理中文字符时,list_to_binary不支持转换,可用unicode:characters_to_binary()转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单说下编码

计算机是只认识二进制数字的,像是英语字符,中文字符这些等等都会对应一个数字好让计算机进行处理,对于英文来说,ascii编码几百个数字就够用了,但是对于中文,日语其他国家的语言就不支持,于是出现了其他的编码方式,unicode的话也是其中一个,他决定了每个字符所对应的数字,但没有决定每个字符的编码方式,utf8,utf16这些才决定了他的编码方式是如何的。

erlang binary语法

这个东西真的感觉挺复杂的,但项目中多处用到了这个东西,之前一直把他和底层的二进制绑在一起看,始终搞不懂,后来发现自己想复杂了,把他当成和List一样作为数据处理的结构来理解就ojbk了。
它的语法就是这样<<E1,E2>>,其中Ei=Value | Value:Size | Value/TypeSpecifiterList | Value:Size/TypeSpecifiterList
Size是一个已知整数,它指明了片段的大小,默认值取决于不用的数据类型,对整数来说是8,可以把他看做Unit的单位
TypeSepcifierList 形式为 End-Sign-Type-Unit,任何一项都可以被省略,且任意排序
End 可以是 big | little | native 它指定了机器网络字节顺序
Sign 可以是signed | unsigned 只用于模式匹配
Type 可以是integer | float |binary | utf8 等等
Unit 写法是 unit:1|2…|256 interger,float,bitstring默认为1,binary为8
一个片段的总长度是Size * Unit字节,binary类型的数据长度必须是8的倍数
erlang中的binary其实可以当作字符串来使用,在binary里面的必须都是ASCII值为1-255之间的,之前一直不理解<<“abc”>>,其实<<“abc”>> = <<97,98,99>>。erlang真的是很蛋疼的一门语言,“abc” = [97,98,99],但是<<[97,98,99]>> =/= <<“abc”>>.。。。。。

erlang中文字符

list_to_binary不支持中文的装换,可以使用unicode:characters_to_binary()来进行转换,将多字节的符号转换成单字节表示的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值