IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第8回 Railsアプリで日本のemojiを広めませんか。 (野田貴子) 2016年2月

先日、Merriam-Websterという英語の辞書に、新しい定義が追加されました。この辞書はアメリカ英語において権威があるため、あらゆるところで話題になりました。特に今回追加された新語の中には、インターネット時代を象徴するものが多数含まれているようなので、とても興味深いところです。

ワシントンポスト紙の記事
http://www.washingtonpost.com/news/morning-mix/wp/2015/05/26/behold-the-new-words-added-to-merriam-webster-clickbait-wtf-and-photobomb/

タイム紙の記事
http://time.com/3896800/merriam-webster-update-nsfw-dark-money-wtf/

これらの新語の中には、「emoji」という単語が見受けられます。

日本人にとって「絵文字」は昔から付き合いのあるものですが、海外では黄色いニコちゃんマークの「smiley icon」や、表情アイコンの「emoticon(emotional + icon)」といった単語が使われてきました。これらと「emoji」の違いは、「emoji」は顔の表情だけでなく、「病院」や「宿題」といったあらゆるものを表現するために使われるというところです。海外では「emo (emotional) + ji (text)」と勘違いしている人も少なくないようですが、「絵文字=絵で文字を表す」という名称でも表わされるように、「emoji」は「smiley」や「emoticon」とは違った、新しい概念なのです。

また、「emoji」はUnicodeで規格化されていることも大きなポイントです。

思い返せば、ガラケーの絵文字をどうにかしてパソコンからも使えるように、Webシステムの開発者たちが工夫を凝らしていた時代がありました。画面上で絵文字を入力する際には絵文字用のパレットを表示し、絵文字を保存する際には「##e001##」のような代替文字列を使い、再度画面で表示する際にはその代替文字列を絵文字の画像に置き換えるといった回りくどい方法がよく使われました。携帯電話会社ごとにバラバラな絵文字も悩みの種でした。

ところが2010年、ついに絵文字はUnicodeの規格文字になりました。そのため、海外のコンピューターとも以下の一覧にあるような絵文字を送り合えるようになったのです。

http://en.wikipedia.org/wiki/Emoji#In_the_Unicode_standard

それでは、Ruby on Railsではこの絵文字を取り扱うことができるのでしょうか。答えはイエスです。(まだ完璧でない部分もあるようで、GitHubにバグ報告が上がってはいますが...。)Unicodeで規格化されている絵文字は、1バイトから3バイトで表される通常の「utf8」ではなく、4バイト文字の「utf8mb4」という文字コードになります。このため、絵文字を扱えるかどうかは、Railsで使用する以下の機能がそれぞれutf8mb4に対応しているかどうかによります。

  • Rails本体
  • Webサーバー
  • データベース
  • JSON構文解析
  • ほか

インターネット上を探すと、Railsで絵文字を扱うための数々のハウツーページが見つかります。特に、RailsとMySQLの組み合わせで絵文字を扱う例が多く紹介されています。WebサーバーにNode.jsを使用している場合や、JSONでのデコード・エンコード時には特殊な操作が必要な場合もあるようです。

残念ながら、「Railsアプリでは特殊な設定をしなくても絵文字を扱うことができます」、という段階にはまだ至っていませんが、それでも数年から十数年前の絵文字の情勢に比べたら雲泥の差ですよね。ガラパゴスと言われている日本の携帯電話ですが、emojiを輸出できたことにはとても大きな敬意を払うとともに、ぜひ私たちの開発するRailsアプリでもemojiを使って、さらにemojiを広めていけたらよいですよね。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes