Json module: error when encoding text with accents

One alternative is to use json:encode/2, overriding the encoder, like:

1> L = [ <<"100872">>, <<"STABILO: spécialement conçu pour l'écriture...">>, <<"HB">> ].
[<<"100872">>,
 <<"STABILO: spécialement conçu pour l'écriture...">>,
 <<"HB">>]
2> Encoder = fun(Value, E) -> case is_binary(Value) of true -> unicode:characters_to_binary(Value, latin1); false -> json:encode_value(Value, E) end end.
#Fun<erl_eval.41.39164016>
3> json:encode(L, Encoder).
[91,<<"100872">>,44,
 <<"STABILO: spécialement conçu pour l'écriture..."/utf8>>,
 44,<<"HB">>,93]
1 Like