tbasic 1.61を公開しました。

tbasicセット1.61を公開しました。

tbw161set.zip 
https://www.tbasic.org/downloads/index.html

です。

Ver. 1.6 及び 1.61の更新の詳細は,https://tbasic.org/documents/202501WhatsnewTBasic161.pdf
にあります。


Ver.1.6及び1.61の更新は主として,ユニコード,日本語処理関連のものです。tbasicがユニコード対応になったのは,2010年 Ver.1.2ですから,もう大分前のことです。この間,コンピューター利用環境の世界では,ユニコードが徐々に浸透し,今では意識しないでユニコードを利用する状況になりました。

しかし,それでも日本語環境になかで,旧来型のShift_JISエンコーディングが広く使われています。またメール環境の中では 今でも7ビットJISエンコーディングが普通に使われています。昔作成したデータやプログラムがShift_JISで記述されていることも多いでしょう。また,現在でも青空文庫で提供されてる文書は殆ど(すべて?)Shift_JISです。

このような中で,tbasicは初級インタプリタ言語として,できる限りそれらの環境に応じた処理ができるようなツールとして心がけています。種々のBASICがある中で,これはtbasicの特徴の一つとも思えます。それらは主として,読み取り,書き込みが種々のエンコーディングで可能ということで実現できます。今回の更新では,それらをより使いやすいように改良を加えました。

扱えるエンコーディングとしては,普通の使用では,Shift_JISとUTF-8があれば,ほぼ十分と思えます。しかし,tbasicでは,JIS,EUC,UTF-16,UTF-32も扱えます。これらを判定する関数として,GetFileEncodingName関数をサポートしています。

この関数でこれらすべてのエンコーディングを完全に判定することはできませんが,日本語を含むファイルについてはかなり正確に判定できると思っています。元々エンコーディング判定は原理的に完全にはできません。それは,同じファイルがいくつかのエンコーディングでファイルとして意味の持つものが存在するからです。

例えば,内容が”NX”というファイルをShift_JISで作ったとします。このファイルのバイナリとしての内容は,16進数で表すと,2バイトで,

4E 58

となります。これは,単純なアスキーファイルになりますから,UTF-8,JIS,EUCで読んでも内容は “NX”になります。ところが,このファイルをUTF-16のBigEndian として読むと,内容は”乘”になります,また,UTF-16のLittleEndianとして読むと,”塎”となります。ですから,この2バイトのファイルが与えられたとき,エンコーディングの情報が与えられていなければ,なんと読んでよいのか分かりません。

このように,ファイルのエンコーディングは,読む側が,予め知っているというのが原則になります。しかし,それも限界があり,GetFileEncodingName関数それを補完するものとしての位置づけです。

今回の更新では,このGetFileEncodingName関数の改良及び,種々のエンコーディングでの読み書きの改善を図りました。種々のエンコーディングを利用する状況は少ないかもしれませんが,必要になった場合,有効なツールとなると思われます。

ユニコードへ

ユニコードについての説明文書を更新しました。前の版は,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頁}
1 2 3 8