メインコンテンツへスキップ

テキストとは


1.テキストとは

テキストは、
文字コードだけで構成された
文字列や文書のデータです。

テキスト とは、文章や文献のひとまとまりを指して呼ぶ呼称です。「教科書」の意味でテキストという言葉が使われる事もあります。

コンピュータ用語としてのテキストは、通信や解析や表示の対象となる文字データ(文字列)を指します。テキストデータとも言うようです。
文字の表示の仕方などについて何も付加情報がつけられていないものを特に「プレーンテキスト」、それをファイルに保存したものをテキストファイルと呼びます。

データ とは、事実や資料をさす言葉です。

ファイル とは、データを扱いやすくするための仕組みです。

別の言葉に置き換えてみると、テキストテキストデータは「文字情報」,プレーンテキストは「無地文字情報」,ファイルは「綴り」でテキストファイルを「無地文字情報綴り」と無理ながら言えるかなという事です。無理ながら置き換えてみたのは、多少でも意味を考える手立てとしての手段なので、そのまま覚えるのでは意味がないです。

※この文章を含めてこのページはほとんど、ウィキペディアを主体としていろいろな辞書等からコンピュータ(スマホ等を含む)での用語として意識してまとめたものです。

HTMLデータという視点でみると、HTMLテキストです。HTMLをプレーンテキストとして表示すると、タグもそのまま表示されます。逆にタグのないプレーンテキストHTMLとして表示すると、タグが省略されているものとして補足されて表示されます。つまりHTMLは、HTMLとして扱う必要があり、HTMLと解るようにする必要があります。ファイルとして保存する時に拡張子を「.htm」などにするなどです。

テキストは、数値化された文字コードの連なり (意味を持つ記号の列) です。 デジタル環境では、文字は画像でも形でもなく、数値(コードポイント) で保持されます。 タグも文章も、数値化された文字コードで保持されます。

文字(character) とは、人が意味を理解する記号です。絵のような見た目ではなく、コードポイントによる識別情報で保持されます。

符号位置(コードポイント / Code Point) とは、文字に対して割り振られた一意の番号(整数)です。「どの文字か」を識別する為の論理的なIDです。Unicodeでは、全ての文字が U+XXXX という形式で番号付けされています。 つまり、文字の「番号」です。「文字」=「形」ではなく、「意味をもつ記号をコードで表現した情報」であり、描画は後付けの解釈です。 その結果、文字コードの誤認(UTF-8として保存したのにShift_JISとして読まれるなど) で、文字化けが起きます。テキスト検索や比較処理で見た目が同じで別のコードの物があり正規化を必要とする。タグも文字であり「ただの絵」ではなく構文解析される記号情報です。

文字集合(キャラクターセット) とは、どんな文字が存在するかの一覧(意味の定義) です。Unicode, ASCII, JIS X 0208 などがあります。 ASCII → 128文字のみ Unicode → 14万字以上(世界中の文字をカバー) (文字セット = コードポイントの定義域)

符号化方式(文字コード / encoding) とは、コードポイントを実際のバイト列に変換する方式(ルール/決まり事)です。同じコードポイントでも、エンコーディングによって保存・送信される形(バイト列) は異なります。


2.文字データとは

文字データは、
文字だけまたは
数値と文字を組み合わせた
データです。

文字 (character/キャラクタ) とは、人が意味を理解する記号です。 コンピュータ用語として改めていうと、絵のような見た目ではなくコードポイントによって識別され、「文字コード」で表される「文字集合」という集合の要素(「元」)のことです。
数字も数値を表す文字です。

また、空白も改行も、データです。文字を装飾する時に、空白で文字間隔を空けたり、改行したりする事は、データを付与している事なので注意しましょう。

共通したデザイン方針で作られた文字の集まりを、フォント(書体)といいます。

これは、画像データです。
描かれているのは文字ですが、ビットマップ画像(png形式)です。
img要素を用いて、画像ファイルを埋め込んで例示しています。

これは、文字です。
フォント等によって見え方が変わりますが、見た目ではなくてデータの形式の区別です。
画像との対比を意識して、CSSを用いて装飾もしています。

これは、プレーンテキストです。
embed要素を用いてテキストファイルを埋め込んでいます。
(「伝」の1文字だけのテキストファイルを用意して、例示しています。)

画像データを使う利点は、デザインの自由度が高いという点です。欠点は、データ量が多いという点と、情報の共通化が面倒という点だと思います。

例では、手書きで文字を書いていますが、ツールの機能で文字を書いたり、いろいろ加工も可能です。それ故に、何が出来るかという知識とかセンスが現れるので、難しいかもしれません。


3.電子データとは

電子データは、
電子的方式、
磁気的方式の
記録(データ)です。

電子データ とは、コンピュータなどの電子媒体に於いて扱える、記録(データ)です。コンピュータは、電子回路を応用した機械です。パソコンは個人向け電子計算機であり、スマホは音声通話を主な機能とした電子計算機です。

データは、アナログデータデジタルデータに分類できます。デジタルとは、段階的に区切る, 離散化して処理するという事で、主に整数のような数値によって表わします。電子データだと、0 と 1 の2進数を基準に表されます。まぁ人が2進数を扱うと大変なので、16進数に変えて表現される事が多いです。2進数の1桁を1ビットと呼び、2 x 2 = 4, 2 x 2 x 2 = 8, 2 x 2 x 2 x 2 = 16 と、4桁の2進数で1桁の16進数に変換されます。8ビットを2桁の16進数で表せます。8ビットを1バイト(Byte)と呼びます。10進数で0から 255を、16進数2桁で表せます。

アナログとは、連続的な物理量の変化に対応付けて処理するという事で、情報を電圧の変化などによって表わします。電子データだと、電圧などの変化で表されます。音など空気の震えを電磁気的に変化で表せるので、再現性は高く出来るが外部要因の影響も受けやすいです。

HTML言語は、コンピュータにおいて扱うデータを記述するための形式言語でありコンピュータ言語の1つであるので、デジタルデータを扱うという視点が必要です。数値を扱うにしても、桁数を表す制御情報が必要です。文字については、符号化して置き換えないといけません。「伝」という文字が、そのまま保存, 処理される訳ではないので、意識する必要があります。


4.文字コードとは

文字コードは、
文字のひとつひとつを
符号(コード)に重複なく
対応させたものです。

文字コード とは、コンピュータなどの電子媒体において、文章を画像などの図形データとしてではなくテキストの形式で扱う場合に、その各文字(単一の文字でない場合もある)に対して持っている符号(コード)のことです。
ASCIIコードシフトJISコードUnicodeなどの体系があります。UTF8は、Unicodeにおいて標準化された文字符号化方式のひとつです。シフトJISは、日本語コード体系のひとつです。シフトJISで保存されたデータをUnicodeとして扱ったり(その逆も)した場合などが「文字化け」の原因の1つだったりしますので注意しましょう。

HTMLでの文字コードの指定方法は、meta要素を用いて、<meta charset="UTF-8"> などと記述します。

ファイルへの保存をする時の文字コードの選択(指定方法)は、テキストエディタなどのツールの機能に寄ります。

shift-jis サンプル」という、<meta charset="UTF-8"> と書きながら shift-jis で保存しているサンプルページも用意してあります。文字化けを意図的に想定したページなので、タグは認識される様に記述しているつもりです。

  1. <span id="XHSAMPLE10421"></span>
  2. <script>
  3. document.getElementById("XHSAMPLE10421").textContent = "¥u{4F1D}";
  4. </script>

「伝」という文字を例にしますが、シフトJISコード での文字コードは 9360 で、UTF16 での文字コードは 4F1D で、UTF8 での文字コードは E4BC9D です。(共に16進表記) 4F1D(16進表記)を2進数にしてみると、0100 1111 0001 1101 となり、 E4BC9D(16進表記)を2進数にしてみると、1110 0100 1011 1100 1001 1101 となります。ビットはこの様にオン・オフで連なったデータが保存されている訳です。

0100
1111
0001
1101
(4F1D)
1110
0100
1011
1100
1001
1101
(E4BC9D)

2進数表記を、オン・オフの図で CSSを用いてイメージしてみました。UTF16, UTF8 で符号化されていますというお約束事で、それぞれ「伝」と解釈して処理される訳です。

1110
0100
1011
1100
1001
1101

「伝」のUTF8 での文字コード 'E4BC9D' を、8ビット(1byte)毎に並べてみました。このオン・オフを穴が開いているか否かで表しているのがパンチカードです。なので、デジタルデータも紙媒体に記録できます。

1

0011
0001

Ā

1100
0100
1000
0000

1110
0100
1011
1100
1001
1101

UTF8 での、1バイト文字, 2バイト文字, 3バイト文字を例示してみました。


5.テキストサンプル

HTMLを用いないで、
テキストでWebページを
作成してみたらという
サンプルを用意しました。

テキストサンプル」のページはこちらです。
HTMLの要素を極力用いないでテキストとしての見た目を例示する事を目的としたページです。
ほとんどpre要素(整形済みテキスト要素)を用いて表現しています。
本当のテキストファイルだと、ハイパーテキストでないので、ブラウザ「戻る」などを用いて頂かなければいけなくなるので、制御用にa要素(アンカー要素)を用いたくて HTMLでのテキスト表現というまわりくどい形をとりました。

比較の為の HTMLサンプルページもあります。

「戻る」など閲覧側の機能で移動して頂く必要がありますが、テキストをHTML文書として扱う, HTML文書をテキストとして扱うもあります。それぞれ文字コードUTF-8 としていますが、エンコーディング宣言がないので文字化けするかもしれません。単なるサンプルデータなので無視してください。

テキストサンプル」のテキスト風のHTMLで作成したページを、ほぼそのままテキストファイルとしたWebページを用意してみました。テキストなので、リンクはありません。iframe要素を用いて提示させて頂いています。

「戻る」など閲覧側の機能で移動して頂く必要がありますが、そのファイルへのリンクは 「./sampletext.txt」です。


6.フォント

フォントとは、
書体データを
意味しています。

筆記体」「飾りなし」や「等幅」「プロポーショナル」などの特徴を持つ書体の種類があります。

改めて提供者側がフォント(書体: Font)を用意する場合を除き、閲覧者側の環境に存在するフォント(書体)で文字(キャラクタ)を表現するので、文字(キャラクタ)のデザインや大きさが作成者の意図と異なる可能性があります。

同じサイズで、書体デザインの同じ活字の一揃い。現在ではコンピュータ画面に表示したり、紙面に印刷(書籍など)したりするために利用できるようにした書体データを意味している。
フォント - Wikipedia

以下は同じ文字(キャラクタ)データに異なるフォントを指定した例です。

漢字
ひらがな
カタカナ
ab12
ab12

漢字
ひらがな
カタカナ
ab12
ab12

漢字
ひらがな
カタカナ
ab12
ab12

漢字
ひらがな
カタカナ
ab12
ab12

漢字
ひらがな
カタカナ
ab12
ab12

漢字
ひらがな
カタカナ
ab12
ab12

上記の 'Dancing Script' は英字フォントの為、半角の英数字のみ反映しています。半角の英数字以外は cursive と指定しているので、その様に表示されています。この様に、全角と半角は別の文字です。

上記の 'Nico Moji plus', 'Dancing Script' は、サーバー側で用意しているので、一応どのブラウザでも同じに見えると思うのですが、 他のフォントは閲覧側の環境次第で見え方が異なります。