文字コード

参考:

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

Ruby1.9時代の文字化け対策 (その1) – Qiita

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

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

Ruby 2.0 から、Magic Comment を書いていないファイルの文字列リテラルのエンコーディング (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 では標準の文字コードは 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

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

Kconv

参考:

module Kconv (Ruby 2.5.0)

NKF

参考:

module NKF (Ruby 2.5.0)

String#encode

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

無引数の場合は、Encoding.default_internal が nil でなければそれが変換先のエンコーディングになり、かつ :invalid => :replace と :undef => :replace が指定されたと見なされ、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:

コメントを残す

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