2017-09-03 154 views
4

我有两个变量如下:如何在erlang中连接两个utf8字符串?

A = <<"سعید"/utf8>>, 
B = <<"حیدری"/utf8>>, 

我如何Concat的AB

C = <<A/utf8, B/utf8>>. 

线的上方返回exception error: bad argument

+0

你可以在这里找到答案https://stackoverflow.com/questions/600642/how-do-i-concatenate-two-binaries-in-erlang – Qbeck

回答

7

utf8只是编码。它与任何其他二进制一样是二进制的:

1> A = <<"سعید"/utf8>>, 
1> B = <<"حیدری"/utf8>>, 
1> C = <<A/bytes, B/bytes>>. 
<<216,179,216,185,219,140,216,175,216,173,219,140,216,175, 
    216,177,219,140>> 
2> io:put_chars([C, $\n]). 
سعیدحیدری 
ok 

P.S .:由于Web浏览器行为而显示的结果相反。它在控制台中以正确的顺序显示。