LoginSignup
9
7

More than 5 years have passed since last update.

irbでマルチバイト文字を扱う

Last updated at Posted at 2015-11-04

背景

サーバ環境など、日本語環境が整っていない環境の場合、、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

という日本語オンリーの環境だと起こらないことですが、たまにハマってしまうのでメモ。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7