sql >> Base de Datos >  >> RDS >> Mysql

Erlang emysql iPhone Emoji Problema de codificación

Se trata de la codificación utf-8. En Erlang una lista de caracteres, en tu caso [240,159,152,130] , normalmente no están codificados, pero son los puntos de código Unicode. Cuando recuperó los datos, obtuvo un binario que contenía bytes de codificación utf-8 de sus caracteres. No sé exactamente dónde ocurrió esta codificación. Desde el 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]

Manejar Unicode en erlang es bastante simple, los caracteres en las listas suelen ser los puntos de código Unicode y rara vez se codifican, mientras que almacenarlos en binarios significa que debe codificarlos de alguna manera, ya que los binarios son solo matrices de bytes. La codificación predeterminada es utf-8. En el módulo unicode hay funciones para convertir entre listas Unicode y binarios.