I just had this issue and solved it by specifying the encoding to File.stream!
:
file_path
|> File.stream!([{:encoding, :latin1}])
|> CSV.decode(headers: true)
# ....
I didn’t initially know how the file was encoded; I just used trial-and-error with the various supported encodings listed here.