将Erlang二进制字符串转换为小写

Iva*_*rov 8 string binary erlang

是否有可能将Erlang二进制UTF-8字符串(如<<"HELLO">>)转换为小写而不将其转换为列表并返回?

Vic*_*roz 11

如果你知道如何小写unicode字符和关键字这里是"没有将它转换为列表和返回",那么答案可能是:

<< <<(unicode_to_lower(C))/utf8>> || <<C/utf8>> <= <<"HELLO">> >>.
Run Code Online (Sandbox Code Playgroud)

  • @bsmr它不仅适用于ASCII`1> [C || << C/utf8 >> <= unicode:characters_to_binary("ПРИВЕТ")].[1055,1056,1048,1042,1045,1058]` (3认同)
  • @Kay:答案隐含了一个有效的unicode_to_lower / 1实现。 (2认同)

Fac*_*ano 6

string: Erlang 20中的小写字母可用于二进制文件:

1> string:lowercase(<<"HELLO">>).
<<"hello">>
Run Code Online (Sandbox Code Playgroud)