20.文字コード|ASCII-8BIT

先ほどの文字コードの記事の続き。

ASCII-8BIT

「ASCII」は最大7ビットの文字コードであり、
「ASCII-8BIT」はBINARYまたは『文字列エンコーディングが不明である』ことを意味する。

  • サンプル
pry> 'a'.encoding               #=> #<Encoding:UTF-8>
pry> '���'.encoding             #=> #<Encoding:ASCII-8BIT>

今回問題が発生した箇所はバックエンドのAPI処理ではRubyを使用している。
そもそもRubyは内部的に文字コードはなく、BINARYのようだ。
文字コード対応は、そもそもライブラリの仕事のようだ。

上記のような文字化けも多分にライブラリなどが関係しているようだ。
下記のように呼び出し時にエンコーディングしてやれば、ひとまず文字化けは防げる。

'テスト'.force_encoding(Encoding::UTF_8)