Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。 同じプロセスの中で異なるエンコーディングの文字列が同時に存在することができます。 全ての String や Regexp などのオブジェクトは自身のエンコーディング情報を保持しています。 これにより各オブジェクト内の文字を適切に取り扱うことができます。 後述のマジックコメントでスクリプトエンコーディングを指定すると、 Ruby スクリプトに非 ASCII 文字を使うことができます。(magic comment) 文字列リテラルや正規表現リテラルだけでなく変数名、メソッド名、クラス名などにも 非 ASCII 文字を使うことができます。ただし文字列リテラル・