长生不老药 Bson 解码器在 utf8 > 16#FF 上失败

elixir Bson decoder failing on utf8 > 16#FF

我正在阅读 mongodb 并使用 Bson.decoder(数据)。在此过程中,数据变成包含 {"unitˊs", 1} 的元组列表。 String.to_atom("unitˊs") 显然失败了,因为第 5 个字符是 "MODIFIER LETTER ACUTE ACCENT (U+02CA)" 和

** (ArgumentError) argument error :erlang.binary_to_atom("unitˊs", :utf8)

http://erlang.org/doc/man/erlang.html#binary_to_atom-2 注释 binary_to_atom(Binary, utf8) will fail if the binary contains Unicode characters greater than 16#FF

是否有任何建议的解决方法?

在 Erlang 18 将支持原子的完整 unicode 范围之前,没有任何解决方法。所以最好的选择是现在不要将其转换为原子。