タグ

2021年6月29日のブックマーク (2件)

  • Rubyのエンコーディング - tmtms のメモ

    Ruby 1.9 から文字列や正規表現オブジェクトはそれぞれエンコーディング(いわゆる文字コード)を保持するようになりました。 たとえば 0xB1 0xB2 という2バイトは EUC-JP エンコーディングでは「渦」、SHIFT_JIS エンコーディングでは「アイ」という文字になります。つまり同じバイト列でもエンコーディングが異なれば異なる文字として解釈されます。 1.8 では文字列はただのバイト列でした。なので、それがどのような文字を表しているのか、つまりエンコーディングが何なのかはプログラムが知っている必要がありました。 1.9 では文字列オブジェクト自身が自分が何のエンコーディングかを知っています。同じ 0xB1 0xB2 というバイト列でも、それが EUC-JP の「渦」なのか SHIFT_JIS の「アイ」なのかは、文字列自身が知っています。 スクリプトエンコーディング スクリプ

    Rubyのエンコーディング - tmtms のメモ
  • 第4回 Ruby M17N 事始め:文字コード編 | gihyo.jp

    はじめに 今回は文字列を扱う際には忘れてはならない文字コードについて、日人が知っておくべきエンコーディングを中心に解説していきます。 US-ASCII ASCIIは、ASA(American Standards Association、のちにUSASIを経てANSI)によって、1963年6月17日にASA X3.4-1963として制定され、1967年7月7日にUSASI(United States of America Standards Institute、ASAから1966年8月24日に改組)によってUSAS X3.4-1967へと改訂されてほぼ現在の形となりました。 その後の多くの文字コードがASCIIのスーパーセットとして作られたため、ASCIIは共通のサブセットとして特別な位置に置かれるようになりました。RubyでもASCIIに含まれる文字のみで構成されるStringは、ASC

    第4回 Ruby M17N 事始め:文字コード編 | gihyo.jp