ユニコードへ

ユニコードについての説明文書を更新しました。前の版は,2013年10月版ですから,10年ぶりの更新です。https://tbasic.org/reference/202308ToUnicode.pdf

近日中に tbasicをtbasicを1.6にバージョンアップします。その前に,関連する文書として公開することにしました。tbasicでの説明文書の中にユニコードについての用語等が出てきますが,それらを理解する上での基礎知識がまとめてあります。

2013年10月版のタイトルは「ユニコード」です。今回,2023年08月版のタイトルは「ユニコードへ」です。更新内容は,大幅な内容追加です。前の版は7ページでしたが,今回の版は51ページです。改版というより,新たに書いたといった方が良いかもしれません。ただ趣旨は前回と同じで,ユニコードに対する入門的な解説文書です。私自身ユニコードの専門家でないので,私が勉強をして,理解した内容をまとめたものです。私自身への覚書といってもいいかもしれません。

今回,tbasicを1.6にバージョンアップする際に,必要な(主に技術的な)知識を得るために,ユニコード関連の情報を色々読んで得た内容が主ですが,それだけでなく,ユニコードが普及する以前の状況,ユニコードの始まりの状況についても調べてみました。今回はそれらを纏めて,「ユニコードへ」というタイトルにしました。

少し長い文書ですが,ユニコードについての全体的な事柄が,分かるのではと思います。技術的な部分は,プログラミングを念頭に書いているので,その部分は必要な時に読むとして,最初は飛ばして読むのが良いと思います。

全体の内容は,以下の通りです。

目次
  • 第I部 ユニコードへ
    • 1 ユニコードとは {4頁}
    • 2 標準化への動き {4頁}
      • 2.1 7ビット符号 {5頁}
      • 2.2 8ビット符号 {8頁}
      • 2.3 文字集合の切り替え(ISO/IEC 2022)} {11頁}
    • 3 日本語環境 {14頁}
      • 3.1 符号化文字集合 {14頁}
      • 3.2 日本語の文字符号化方式 {19頁}
    • 4 ユニコードへ {29頁}
      • 4.1 始まり} {29頁}
      • 4.2 Unicode Ver.1(1991) {29頁}
      • 4.3 Unicode Ver.2(1996) {30頁}
      • 4.4 Unicode Ver.3(2000) {31頁}
      • 4.5 Unicode Ver.4(2003)とその後 {31頁}
      • 4.6 Unicodeの成果 {32頁}
  • 第II部 ユニコードの仕組み{33頁}
    • 5 ユニコード{33頁}
      • 5.1 符号化文字集合 {33頁}
      • 5.2 ユニコードの文字符号化方式 {36頁}
      • 5.3 Endian {37頁}
    • 6 UTFの仕組み {38頁}
      • 6.1 UTF-32 {38頁}
      • 6.2 UTF-16 {38頁}
      • 6.3 UTF-8 {39頁}
      • 6.4 BOM {41頁}
    • 7 正規化(normalization)}{43頁}
      • 7.1 結合文字 {43頁}
      • 7.2 等価性 {44頁}
      • 7.3 正規化 {45頁}
    • 8 フォント{46頁}
      • 8.1 フォント {46頁}
      • 8.2 日本語用のフォント {47頁}
      • 8.3 世界のフォント {49頁}
    • 9 まとめ {51頁}

Winidows 11

遅ればせながら,私も Windows 11が使えるようになりました。早速,tbasic 1.5の動作確認をしました。1.5はWindows 11 を認識できませんから,起動画面は,Windows 10 と同じで,

Windows 11 上でのtbasic1.5の起動画面

となります。samplesにあるプログラムも動作確認をしました。Fontサイズの微調整が必要なものもありましたが,これ以外は,特に問題なく,動作しました。画面表示は,Windows 10 と11では余り差異は無いようです。

期待通りと言うか,予想通り,問題なく動作するようです。取り敢えず一安心です。

Shift_JIS から UTF-8へ

少し前の話になりますが,昨年の秋から,今年の春にかけて,このホームページを運用しているサーバーのOSを更新しました。昨年の暮れまで動いていたOSは CentOS6.4でした。CentOS6はこのサイトを立ち上げた2013年から稼働していたOSです。随分長く利用していましたが,昨年暮れでセキュリティーアップデートが期限切れになるのを機に最新OSに更新することにしました。

当時2020年秋のCentOSの最新版はCentOS8でした。そこで,2020年11月 CentOS8 に更新しました。実はその直後,CentOSのサポートが2021年暮れに終了になることが公表されました。同じOSを長期に使い続けたいとのことから,CentOSでの運用を諦め,CentOS以外のOSを検討しました。検討やテストを行った結果,Oracle Linux を利用することにしました。今年の3月末には Oracle Linux 8.3をインストールし,運用を始めました。現在は Oracle Linux 8.4にアップデートしています。 Oracle Linux 8 は2029年5月まで,サポートされるようなので,長期にわたって利用できそうです。

今回のOSの更新はすべて新規インストールする必要があったので,サーバーを交換するなどの手順が必要になりました。その結果,かなり手間がかかり,約半年間かかりました。その間,旧OSから10年近い期間があったので,ソフトウエアの進歩を色々とかなり感じました。

その中で特に変化を感じたのが,http からhttpsへの移行でした。前回もそのような動きはありましたが,「それも可能」と言ったものでした。今回は,httpsでなければ,まともな運用ができないような状況で,ほぼ強制的にhttps化が迫られました。幸い,https化に必要な認証局登録が無料で可能な方法があったので,それを利用させてもらいました。セキュリティ強化の社会的方向からすれば自然な流れなのでしょう。

もう一つ感じたのが,Unicode化の流れでした。Unicodeは1990年代に始まるもう随分と昔からある流れですが,一般ユーザーが余り意識しないうちに徐々に浸透してきたようです。tbasicも,2010年にUnicode対応になっていますから,tbasicも Unicode化の流れ に乗っていました。しかし今までのtbasic でのUnicode化の実際の恩恵は,半角全角の区別なく,文字列処理が可能となることくらいでした。しかし,現在のUnicode化の流れは,文字コードを積極的にUnicode化するというものです。

サーバー関係の種々のファイルがデフォルトでUTF-8となり,それを標準とする流れです。勿論,UTF-8化の傾向は以前からありました。しかし,今回はさらに進んでサーバー設定のいくつかのところで半ば強制的にUTF-8とさせられた感じがします。Windows上では,現在でもShift_JISが多く使われていますが,UTF-8への流れはWindows上でも確実に進んでいます。実際,Windowの標準エディターであるメモ帳でのデフォルトEncodingがBOM無し,UTF-8になったことが,少し前ですが話題になりました。

他方,近年web等で,日本語の文章の中に,外国語や外国語から派生する用語をよく目にするようになりました。例えば,翻訳サイトでは,日本語と外国語が並列して表示されています。しかし,元々初期のコンピュータではアルファベットと数字しか扱えませんでした。その後,日本では,日本で使用するコンピュータのハード的な改良と,ソフト的な工夫がされ,1980年代には,日本用のコンピュータで日本語,特に漢字が使えるようになりました。
世界的にも同様な状況があり,各国で自国向けのコンピュータの改良が行われ,そのコンピュータで自国向けの自国語文字が使えるようになりました。1991年には,Unicode制定のための非営利国際的組織Unicode Consortium が発足しました。そして,1991年10月にその仕様書”The Unicode Standard Version 1.0″が発表されました。その後更新が続けられ,2021年現在最新版はversion13です。

Unicode を使うと,一つの文書に多国語が混在して使用できるようになります。Shift_JISコードで書かれた日本語の文章にtrès bienと言う言葉を含めることはできませんが,Unicodを使えば混在が可能です。このブログでは,今見ているように,日本語の文書の中にフランス語 très bien を同時に表示できていますが,これは,ブログソフトwordpressがUnicodeの一つであるUTF8でで書かれていることに依ります。

このようにUnicodeが作られてから30年,種々のところで,その利用が顕在化してきました。tbasicも既にUnicode対応ですが,その効用の,より活用を考える時期かも知れません。次期のバージョンアップでは,その辺りの強化を考えてみることにします。

1 2 3 4 10