2015-01-02 54 views
2

我在讀mongodb並使用Bson.decoder(data)。一路上,數據變成了包含{「unit's」,1}的元組列表。 String.to_atom( 「unit's」)顯然是失敗了,因爲第5字符是 「修飾字母銳音符(U + 02CA)」 與elixir Bson解碼器在utf8上失敗> 16#FF

** (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

是否有任何建議的工作變通?

回答

2

直到Erlang 18將支持原子的完整unicode範圍,沒有任何解決方法。所以最好的選擇是現在不將它轉換爲原子。

+0

臭蟲!但是謝謝你! – Paul

+0

最後,只需刪除任何> 0x00ff並執行以下操作即可:'for(n <-String.to_char_list(k),n <256,do:n)|> to_string |> String.to_atom' – Paul