1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iso-2022-jpの文字列をutf-8に変換する

Posted at

メールを受け取った際にiso-2022-jpで送られたために文字化けしてしまっていました。

rubyのencodeを使ってutf-8に変換します

検証するためにiso-2022-jpでエンコードされた文字列を生成します

puts "ほげ".encode('iso-2022-jp')
# => $B$[$2(B

encodeを以下のように記述します

str.encode(変換先, 変換元, 変換オプション)

今回はiso-2022-jpの文字列をutf-8に変換したいので次のようになります

str = "ほげ".encode('iso-2022-jp')
puts str
# => $B$[$2(B
puts str.encode('utf-8', 'iso-2022-jp', invalid: :replace, undef: :replace, replace: '')

今回は変換できない文字を空文字に置き換えるオプションを指定しています

変換元がわかっている場合でないとこの方法で変換することはできませんが、
今回のようにメールが文字化けしている場合などでは有効に使えそうです

参考

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?