Max

Max

Hi,

i use the following code to generate a csv file. The code itself works. The problem are special chars / umlauts.

  • if i use :utf8 i get the file, but special chars like €, öäü are written like €, ü, …

  • if i don´t use :utf8 it works as long as there are no special chars in a row like €, –, … . Then it breaks with the error erlang error: :no_translation

      file = File.open!(System.tmp_dir()<>"/"<>filename, [:write, :utf8])
      users = get_users(conn, params)
               |> Repo.all
               |> CSV.encode(separator: ?;)
               |> Enum.each(&IO.write(file, &1))
    

Thanks!

Showing Posts 1 to 10

NobbZ

NobbZ

When you write using utf8 make sure you use it for reading as well. As you describe it, it seems as if your reader uses latin1 aka iso-8859-1

NobbZ

NobbZ

I just realize that you get data from db, maybe it’s not utf8 in there, elixir will not convert.

voughtdq

voughtdq

Are you using MySQL or MariaDB? They use latin1 as their default apparently.

Max

Max OP

None of them. Postgres 9.6 on AWS RDS. Default settings.

Max

Max OP

AWS RDS with postgres 9.6 is set to utf8. Not sure what to change in code.

NobbZ

NobbZ

So what do you use to display the output?

Max

Max OP

Excel 2016. I know you can set encoding on import. But at the end i need a file which can be opened without doing anything. Our users don´t know how do import a csv in excel.

NobbZ

NobbZ

Then you will have 3 options:

  • Deliver an excel spreadsheet with correctly set up encoding,
  • Restrict yourself to US-ASCII
  • Write proper documentation how to import your data into Excel

If the customer doesn’t know how to do, it is not your fault. Also it is not your fault, that excel doesn’t use utf8 as default import encoding. Even worse, depending on the system locale, excel may assume different default encodings (thats why I told you to restrict yourself to US-ASCII, which is a subset of all encodings used by MS I already encountered in the wild).

So two things that aren’t even your fault, that you can’t do anything about, but your customer tries to blame you?

Max

Max OP

Mhm, i know how to generate a csv. But as fas as i know i can´t set encoding in the file(?). I don´t know how to generate a xls file. But thanks for your input and time.

And yes, the customers blame me :frowning: We have strange customers.

NobbZ

NobbZ

Maybe you can use elixlsx?

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
rahultumpala
Hello, I have an Elixir backend that implements a custom protocol over TCP. I want to load test the backend and assess the performance o...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews