文字コード

参考:

Ruby の内部文字コードは UTF-8 ではない…だと…?! | TechRacho

Ruby 1.9 時代の文字化け対策 (その1) – Qiita

Ruby M17N の設計と実装 | Ruby Magazine (るびま)

デフォルトのスクリプトエンコーディング

Ruby 2.0 以降、マジックコメントの書かれていないファイルのおける文字列リテラルのエンコーディング (default script encoding) は UTF-8 となる。

参考:

デフォルトのスクリプトエンコーディングの変更 – Ruby 2.0.0 の注意点やその他の新機能 | Rubyist Magazine (るびま)

ruby – Why is the default encoding in Rails not UTF-8? – Stack Overflow

Ruby on Rails

Ruby on Rails では標準の文字コードは UTF-8 に設定されている

# UTF-8 is the default internal and external encoding.
silence_warnings do
  Encoding.default_external = Encoding::UTF_8
  Encoding.default_internal = Encoding::UTF_8
end

参考:

rails/rails.rb at 20c91119903f70eb19aed33fe78417789dbf070f · rails/rails

encoding – Set UTF-8 as default for Ruby 1.9.3 – Stack Overflow

マジックコメント

# coding: utf-8

Ruby 2.0 以降では、エンコードを指定しなかった場合は UTF-8 として扱われる。

参考:

衝撃の事実!? “# -*- encoding: utf-8 -*-“じゃなくてもいいんです!- Qiita

文字コードの判別

参考:

文字コードの判別 | deadwood

Ruby でファイルエンコーディングを確認する | SHOYAN BLOG

文字コードの変換

参考:

Ruby/Rails で文字コードの変換 (エンコード) とエンコーディングの確認方法のまとめ | Rails Webook

文字エンコードに悩まされ、直接指定や nkf による推測などを試した – Qiita

Kconv

参考:

module Kconv (Ruby 2.5.0)

NKF

参考:

module NKF (Ruby 2.5.0)

String#encode

self を指定したエンコーディングの文字列に変換して返す。第2引数が与えられた場合、変換元のエンコーディングとして使われる。変換元のエンコーディングが省略された場合、 self  のエンコーディングが使われる。

引数が指定されなかった場合に、Encoding.default_internalnil 以外であれば、それを暗黙的な変換先として:invalid => :replace:undef => :replace が指定されたとみなして変換される。Encoding.default_internal が nil であれば暗黙的な変換は行われない。

encode(encoding, options = nil) -> String
encode(encoding, from_encoding, options = nil) -> String
encode(options = nil) -> String

参考:

instance method String#encode (Ruby 2.5.0)

Encoding

参考:

class Encoding (Ruby 2.5.0)

scrub/scrub!

参考:

Ruby 2.1.0 に追加される不正なバイト列を除去する String#scrub の紹介 | sonots:blog

invalid byte sequence in UTF-8にString#scrubで対応 | EasyRamble

instance method String#scrub (Ruby 2.5.0)

instance method String#scrub! (Ruby 2.5.0)

 SJIS と Shift_JIS

参考:

Ruby の SJIS は Shift_JIS じゃない – Qiita

Ruby で ShiftJIS のファイルを扱う (1.9.3, 2.0系対応版) | TechRacho

Shift_JIS サイトを Nokogiri でパースするときにはエンコード指定 (CP932 指定推奨) – Qiita

Shift_JIS のダメ文字 | fudist

UTF-8 → cp932 (Shift_JIS) 変換表 | fudist

invalid byte sequence in UTF-8 (ArgumentError)

参考:

File.readlines invalid byte sequence in UTF-8 (ArgumentError) – Stack Overflow

ファイルの読み書き

参考:

異なるエンコーディングでのファイル書き出しと読み込み – Qiita

エンコード指定でファイル入出力 | 備忘録的な blog

Tagged:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です