Mysql
 sql >> Database >  >> RDS >> Mysql

Erlang emysql Problema di codifica Emoji per iPhone

Riguarda la codifica utf-8. In Erlang un elenco di caratteri, nel tuo caso [240,159,152,130] , normalmente non sono codificati ma sono i punti di codice unicode. Quando hai recuperato i dati, hai ottenuto un binario contenente i byte di codifica utf-8 dei tuoi caratteri. Non so esattamente dove sia avvenuta questa codifica. Dalla 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]

La gestione dell'unicode in erlang è piuttosto semplice, i caratteri negli elenchi sono solitamente i punti del codice unicode e sono codificati molto raramente, mentre archiviarli nei binari significa che devi codificarli in qualche modo, poiché i binari sono solo array di byte. La codifica predefinita è utf-8. Nel modulo unicode ci sono funzioni per la conversione tra elenchi Unicode e binari.