PRESS』編集部が自信を持ってお届けするシリーズです。啓介UnicodeとUTF-8とUCS-2,UCS-4など,Unicode関連用語は,いわゆる用語解説にあたるだけでは理解するのに混乱しがちな話題かもしれません。それぞれの用語が登場した経緯や,符号化文字集合,符号化方式としてどういった存在かについて追っていくと,きちんと理解されることと思います。ここでは,簡単に整理してみることにしましょう。まとめると,Unicodeは整数値で表される符号位置と文字とを対応付けています。その整数である符号位置をコンピュータで用いるバイト列の形で表現するための方式として,UTF-8やUTF-16やUTF-32といった各種の符号化方式が定められており,用途に応じて使い分けるようになっています。,「山」という文字の符号位置はU+5C71だということがUnicodeとして決まっています。71という4バイトになるということです(ここではUTF-16とUTF-32のバイト順としてビッグエンディアンを採用しています)。歴史的な経緯としては,上に述べたような「整数値の符号位置を符号化方式によってバイト列に符号化する」という概念が元々あったわけではありません。当初は,Unicodeといえば16ビット固定長のコードというのが売り文句だったように,「山」という文字に5C71という16ビットのビット組み合わせが対応するというのがUnicodeで定義される内容でした。10646で規定されるUCS-2と同じです。Windowsのメモ帳のファイル保存のダイアログで,文字コードの選択肢として現れる「Unicode」は,実際にはUTF-16を意味しています。これは,かつてUnicodeが16ビット固定長の文字コードであったことの名残りといえるでしょう。メモ帳ではUTF-8は「Unicode」とは別に「UTF-8」として選択肢に現れます。時々「UCS-2は符号化文字集合なのか文字符号化方式なのか」といった悩みを見かけることがあります。UCS-2は符号化文字集合だと聞いたけど,UTF-16は符号化方式のはずだ。UTF-16はUCS-2の拡張だという。すると一体......?ということでしょう。用語はひとまずおくとして,肝心なのは中身です。UCS-2が定める内容というのは,上に記したような,「山という文字に5C71という16ビットが対応する」といった対応付けの規則の集合です。それを符号化文字集合と呼ぶか文字符号化方式と呼ぶかは,用語の定義次第でどちらにも言えます。用語法にはいくつかの流派があるので,どれを採用するかによって呼び方も変わります。set)(※注)にちょうど合致することは確かです。(UCS)」の4.9項に,この用語の定義があります。矢野啓介(やのけいすけ)北海道札幌市出身,工学修士(北海道大学,システム情報工学専攻)。(株)富士通研究所に勤務し企業向けソフトウェア技術の研究開発に従事するかたわら,ライフワークとして文字の符号化を探求。オープンソースの仮名漢字変換ソフトウェアSKKのJIS第3第4水準漢字辞書の開発に携わる。べてのエンジニアのための,プログラミング技術情報誌です。読まれている連載きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。~テスト管理の効率を上げ,脆弱性診断を自動で行う~早期リリースが注目される中で,ソフトウェアの品質やセキュリティ面への対応も重要になってきたと感じます。本連載では,安全性・安定性を加えた開発サイクルについて考えていきます。本特集では,2018年10月にリリースされたばかりのバージョン11と,現場の主力として使えるバージョン10にフォーカスし,この7年間で大きく進化したPostgreSQLの魅力を余すことなくお伝えします。......押さえておきたい輻輳制御アルゴリズム本連載ではTCP/IPの中でも特に,新たなアルゴリズム登場の背景として,ネットワーク環境の変化や,TCP輻輳制御アルゴリズムの変遷と概要をみていきます。ゆるく,不定期に更新予定です。Linuxの統合認証にも新たな変化がありました。この連載ではAD-Linux統合認証の最新状況を紹介します。Topics(ほぼ)日刊Linuxトピックニュース。カーネル、ディストリビューションの最新情報を中心に、Linuxのさまざまな話題をお届けします。統合監視ソフトウェアZabbixの概要と新機能の追加による設定や設計の考え方,よくある質問などを解説します。