the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8

Rustam A. Gasanov picture Rustam A. Gasanov · Sep 4, 2015 · Viewed 10.4k times · Source

How to solve this warning being prompted every time I execute Elixir code or enter iex?

warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)

$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.utf8
LANGUAGE=en_US:
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty

Answer

Rustam A. Gasanov picture Rustam A. Gasanov · Sep 5, 2015

Apparently unset LC_ALL= was the issue, I checked

$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"

ensuring LC_ALL is missing, to fix it, I executed:

$ sudo update-locale LC_ALL=en_US.UTF-8

this command added LC_ALL to /etc/default/locale file:

$ cat /etc/default/locale
LANG="en_US.utf8"
LANGUAGE="en_US:"
LC_ALL=en_US.UTF-8

and error is gone.