キャラクタ (コンピュータ)
キャラクタのパターンをROMではなくRAMに保存して書き換え可能にした機能をプログラマブル・キャラクタ・ジェネレータ (Programmable Character Generator: PCG) と称したメーカーもあった。初期のアーケード基板やファミリーコンピュータ等のゲーム機におけるタイリング背景も機能や実装としては近似するが、これらの場合はソフトウェアカートリッジなどとセットでROMに書き込まれたものを使用する形であることも多かった。
PCGはキャラクタ単位で管理されるため、定義されたデータを変更した場合、テキストVRAMに定義された表示されるキャラクタに反映されるため、点在する物を同時に書き換えることも可能である。これらを利用し、表示パターン側を再定義することによって、擬似的なスムーススクロールや多重スクロールや、波や、星、水、川の流れ、を表現したり、画面のワイプ処理などに利用することが可能である。
C++20ではUTF-8でエンコードされた文字を格納することを想定した符号なし文字型として、char8_tが規定されたが、8ビット幅であるとは限らない。
JavaやC#のcharは16ビットであり、内部表現はUTF-16と規定されている。
コンピュータの普及が米国に次いで早かった日本では、日常の生活や業務に漢字が必須であるため、256より多くのキャラクタを扱いたいという要求が強かった。そこで現れたのが、1つのキャラクタを複数のバイトで表すマルチバイト文字(MBC)である。特に初期には2バイトを使うものがほとんどであり、ダブルバイト文字(DBC)と言った。
また、米国以外の国や地域で、それぞれに必要な文字を追加した文字集合や文字コードを作ったため、多数の文字集合や文字コードが乱立する結果となった。Unicodeはその問題を解消し、文字集合を統一するために生まれた。
現在ではキャラクタとデータの関係は抽象化されている。キャラクタは整数値(通常非負整数)で表現され、その整数値から文字符号化方式によりバイト列が生成される。たとえばUnicodeではUnicodeスカラ値という値が、各キャラクタに付けられている。