Skip to content

Instantly share code, notes, and snippets.

@bg5sbk
Created December 8, 2013 08:39
Show Gist options
  • Save bg5sbk/7854685 to your computer and use it in GitHub Desktop.
Save bg5sbk/7854685 to your computer and use it in GitHub Desktop.
Get UTF-8 character by Erlang.
-module(utf8_util).
-export([get_utf8_char/1]).
get_utf8_char ([]) ->
{0, []};
get_utf8_char ([Char1 | String]) ->
get_utf8_char(Char1, String).
get_utf8_char (Char1, String) when Char1 < 16#80 ->
{Char1, String};
get_utf8_char (Char1, String) when Char1 < 16#E0 ->
[Char2 | String2] = String,
{{Char1, Char2}, String2};
get_utf8_char (Char1, String) when Char1 < 16#F0 ->
[Char2, Char3 | String2] = String,
{{Char1, Char2, Char3}, String2};
get_utf8_char (Char1, String) when Char1 < 16#F8 ->
[Char2, Char3, Char4 | String2] = String,
{{Char1, Char2, Char3, Char4}, String2};
get_utf8_char (Char1, String) when Char1 < 16#FC->
[Char2, Char3, Char4, Char5 | String2] = String,
{{Char1, Char2, Char3, Char4, Char5}, String2};
get_utf8_char (Char1, String) when Char1 < 16#FE->
[Char2, Char3, Char4, Char5, Char6 | String2] = String,
{{Char1, Char2, Char3, Char4, Char5, Char6}, String2}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment