Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema de codificação Erlang emysql iPhone Emoji


É tudo sobre codificação utf-8. Em Erlang uma lista de caracteres, no seu caso [240,159,152,130] , normalmente não são codificados, mas são os pontos de código unicode. Quando você recuperou os dados, obteve um binário contendo bytes de codificação utf-8 de seus caracteres. Exatamente onde essa codificação ocorreu eu não sei. Do shell erlang:
10> Bin = <<195,176,194,159,194,152,194,130>>.   
<<195,176,194,159,194,152,194,130>>
11> <<M/utf8,N/utf8,O/utf8,P/utf8,R/binary>> = Bin.
<<195,176,194,159,194,152,194,130>>
12> [M,N,O,P].
[240,159,152,130]

Manipular unicode em erlang é bastante simples, caracteres em listas geralmente são os pontos de código unicode e raramente são codificados, enquanto armazená-los em binários significa que você precisa codificá-los de alguma forma, pois os binários são apenas matrizes de bytes. A codificação padrão é utf-8. No módulo unicode existem funções para conversão entre listas unicode e binários.