diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index c198253..b7ebe80 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -485,6 +485,9 @@ string(Bin, Handler, Stack, Opts) -> %% surrogates noncharacter(<<237, X, _, Rest/binary>>, Handler, [Acc|Stack], Opts) when X >= 160 -> string(Rest, Handler, [?acc_seq(Acc, 16#fffd)|Stack], Opts); +%% u+fffe and u+ffff for R14BXX +noncharacter(<<239, 191, X, Rest/binary>>, Handler, [Acc|Stack], Opts) when X == 190; X == 191 -> + string(Rest, Handler, [?acc_seq(Acc, 16#fffd)|Stack], Opts); %% bad utf8 noncharacter(<<_, Rest/binary>>, Handler, [Acc|Stack], Opts) -> string(Rest, Handler, [?acc_seq(Acc, 16#fffd)|Stack], Opts).