irbでマルチバイト文字を扱う
背景
サーバ環境など、日本語環境が整っていない環境の場合、、irbでマルチバイト文字を扱うとエラーになる
(localeコマンドで LANG が設定されてなく、 posix になっているなど)
$ locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
VMやDockerなど他人の作ったイメージを利用するときは確認しておいたほうがいいかもです。
エラーと対応方法
rails console
などで irb
を立ち上げておもむろに日本語文字列を扱おうとすると、、
invalid multibyte char
というエラーが出ます。
irb(main):001:0> name = 'ほげ'
SyntaxError: (irb):1: invalid multibyte char (US-ASCII)
...省略
utf-8で扱うことが限定であれば、以下のように環境変数を設定した後に rails console
を立ちあげれば、マルチバイト文字も使えることができます。
export LANG=ja_JP.UTF-8
という日本語オンリーの環境だと起こらないことですが、たまにハマってしまうのでメモ。
Author And Source
この問題について(irbでマルチバイト文字を扱う), 我々は、より多くの情報をここで見つけました https://qiita.com/yusabana/items/83c179a109e59bdef092著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .