BT

文字エンコーディングとM17Nの解説

| 作者: Mirko Stocker フォローする 0 人のフォロワー , 翻訳者 今村 哲也 フォローする 0 人のフォロワー 投稿日 2009年5月27日. 推定読書時間: 2 分 |

原文(投稿日:2009/5/10)へのリンク

先日、James Edward Gray II氏は、Rubyの文字エンコーディングに関する10の投稿「M17Nを理解する」を終えた。

Ruby 1.9は、文字サポートについて多くの変更を取り入れた。しかも、異なるエンコーディングが混在する状況を扱うための強力なサポートを用意している。これは多くのプロジェクト、とりわけ世界中の人々によって開発されるオープンソース プロジェクトにおいて求められることだ。

氏はまず基礎的なことから始め、Unicodeについて、エンコードの方法、そしてRuby 1.8に関する投稿、例えば「iconvによるエンコーディングの変換」へと続き、さらにRuby 1.8におけるUnicodeの扱い、と話を進める。その後、「Ruby 1.9の文字列」という包括的な説明と、Ruby 1.9は他の多くの言語とどう異なっているのか?という話へと進む。

一般的には、Unicodeのように万能なエンコーディングを1つ選択し、すべてのデータをそのフォーマットで扱います。Ruby 1.9は別の方法を選びました。1つのエンコーディングを選択する代わりに、80以上のエンコーディングでデータを扱うことを可能にしたのです。

Ruby 1.9の多言語化で新しくなったことの1つに、3種類のデフォルト エンコーディングがある。Ruby 1.8ではたった1つのグローバル変数だった。なぜこれが必要なのか。次のシナリオを考えてみる。

私はUTF-8でコードを書いてもいいし、一方、日本人のプログラマはShift JISで書いてもいい。Rubyはそれをサポートするべきで、実際、1.9はそうしている。もう少し詳しく説明しよう。私が書いたUTF-8のコードをgemパッケージにして、後日、日本人のプログラマが書いたShift JISのコードで、それを利用するところを想像して欲しい。どうしたら円滑に作業を進めることができるだろうか?

Ruby 1.9の3種類のデフォルト エンコーディング」を読むといいだろう。最後の記事では様々な話題、例えばバイナリデータの扱いや正規表現のエンコーディング、を紹介している。

しばらくは1.8を使い続けるつもりだとしても、10の投稿をすべて読み通せば、Ruby 1.9の強力無比な多言語化への準備となり、また数々のコツを知ることができるだろう。それから、もしUnicodeの知識が不十分だとしたら、Joel Spolsky氏の伝説的な「すべてのソフトウェア開発者が絶対確実に知っていなければならないUnicodeとキャラクタセットに関する最低限のこと(言い訳なし!)」を(まだ読んでいなければ)読むといいだろう。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT