no_translation 尝试将 unicode 字符写入 Elixir 文件时出错

no_translation error while attempting to write unicode characters to file in Elixir

我有一个正在读取的流,然后正在写入一个文件,但是我收到一个错误,该错误是由 的存在引起的。我认为这是因为我打开文件时使用了错误的编码或其他原因,但我不知道如何正确设置它:

file = File.open!("/some/path.csv", [:write])
IO.write(file, "’")

这会导致以下错误:

** (ErlangError) erlang error: :no_translation (stdlib) :io.put_chars(#PID<0.250.0>, :unicode, "’")

您应该在 :utf8 模式下打开文件。

file = File.open!("/tmp/foo.txt", [:write, :utf8])
IO.write(file, "’")