やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

組込ライブラリ(Encoding::Converter)

 文字コードを変換する。

成果物

情報源

Encoding::Converter

文字エンコーディング(文字符号化方式)の変換器のクラスです。既存の変換器より一段細かな処理が可能となります。

Encoding::Converter を用いて変換を行う場合は、Encoding::Converter#convert か、より細かな変換処理が可能な Encoding::Converter#primitive_convert が利用できます。エンコーディングを変換するメソッドはこの他に String#encode, NKF.#nkf などがあります。

特異メソッド

asciicompat_encoding new search_convpath

インスタンスメソッド

convert convpath destination_encoding finish 
insert_output inspect last_error primitive_convert 
primitive_errinfo putback replacement replacement= source_encoding

new

 Encoding::Converter オブジェクトを作成す。

new(source_encoding, destination_encoding) -> Encoding::Converter
new(source_encoding, destination_encoding, options) -> Encoding::Converter
new(convpath) -> Encoding::Converter
ec = Encoding::Converter.new("UTF-16BE", "UTF-8")

ec = Encoding::Converter.new("UTF-16BE", "UTF-8", :universal_newline => true)
p ec.convpath #=> [[#<Encoding:UTF-16BE>, #<Encoding:UTF-8>],
              #    "universal_newline"]

convert

 渡された文字列の文字コードを変換する。

ec = Encoding::Converter.new("CP932", "UTF-8")
t = ec.convert('あいうえお'.encode('CP932'))
p t #=> "あいうえお"
p t.dump #=> "\"\\u3042\\u3044\\u3046\\u3048\\u304A\""

 上記コードはCP932の文字列あいうえおUTF-8に変換する。

所感

 このくらい知っておけば十分だろう。

対象環境

$ uname -a
Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux