個人ブログのようなものです。とくにジャンルはありません。
『ToHeart』プレミアムエディション -Steam 【特典】TVアニメ『ToHeart』Blu-ray Disc(全13話・2枚組)同梱
商品ページ
Amazon
※収益広告
記事の概要
文字コードについて
作成日:2020-08-16
最終更新日:2020-08-16
記事の文字数:2186
情報技術
文字コードについて
文字コード概要

文字コードに対する基本的なところを勉強中。

基本的な文字コード(文字符号化方式)の一覧は以下の通り。
「文字符号化方式」と「符号化文字集合」の違いは後述。

文字コード名
(文字符号化方式)
符号化文字集合ビット数「a」表現「あ」表現備考
ASCIIASCII8ビット0x61(表現不可)基本となる文字コード。8ビットの内最後の1ビットはパリティビット
JISJIS X 0201
JIS X 0208
JIS X 0211
8ビット
16ビット
24ビット
0x610x2422正式名称は「ISO-2022-JP」
ASCIIコードをベースに日本語を扱えるようにした文字コード
しかし仕様上、ASCII文字と日本語文字が混在するとデータ量が増えるという問題を抱えている
SHIFT-JISJIS X 0201
JIS X 0208
8ビット
16ビット
0x610x82a0JISコードの問題点を解消した文字コード
JISと比較し一部使えない漢字がある
EUC-JPASCII
JIS X 0201
JIS X 0208
8ビット
16ビット
0x610xa4a2UNIX上で日本語を扱えるようにした文字コード
UTF-8Unicode8ビット~0x610xE38182現在の世界的な主流
ASCIIをそのまま置き換えることができる
可変長のビット長で例えば日本語の文字は3~4バイトで表されたりする
UTF-16Unicode16ビット~0x00610x3042UTF-8と同じ符号化文字集合「Unicode」を使う文字符号化方式
サイズの基本単位が16ビット(2バイト)で、「a」なども2バイトで表される。

符号化文字集合と文字符号化方式

文字コードと一言でいうが、実際にはざっくり2つのプロセスを踏まえて文字をビットに置き換えている。

1つ目は、例えば「あ」という文字を「1」という数字に置き換える作業。どの文字をどの数値に置き換えるかの対応表を「符号化文字集合」という。
この符号化文字集合でカバーできない文字がある場合、その文字はその文字コードにおいて使用できないということになる。

2つ目のプロセスは、「1」という数字を実際のビット列に置き換える作業。この時どのようにビット列に置き換えるかの方式を「文字符号化方式」という。
「UTF-8」や「UTF-16」は符号化文字集合こそ同じ「Unicode」を使っているが、符号化方式が異なるため最終的なビット列は異なるものになる。

この「文字符号化方式」を文字コードと呼ぶ(厳密には文字コードという言葉をその2つに紐づけることはできないらしいが、そう考えた方が分かりやすい)

実例

ここで「UTF-8」と「UTF-16」でひらがなの「あ」を符号化する。

【UTF-8の場合】
1.「あ」を「Unicode」に従い、「0x3042」に変換する
 (あ ⇒ 0x3042)

2.「0x3042」を2進数に置き換える
 (0x3042 ⇒ 0011000001000010)

3.下位ビットから6ビットずつセパレートする
 (0011000001000010 ⇒ 0011 000001 000010)

4.各ビット列の頭に「10」を付ける
 (0011 000001 000010 ⇒ 100011 10000001 10000010)

5.先頭のビット列が8桁になるように、頭に「1」埋めをする
 (100011 10000001 10000010 ⇒ 11100011 10000001 10000010)

6.16進数に戻す
 (100011 10000001 10000010 ⇒ 0xE3 0x81 0x82 ⇒ 0xE38182)

【UTF-16の場合】
1.「あ」を「Unicode」に従い、「0x3042」に変換する
 (あ ⇒ 0x3042)

2.2バイト文字はそのまま符号化する
 (0x3042 ⇒ 0x3042)
 (【リトルエンディアンの場合】0x3042 ⇒ 0x4230)

ビッグエンディアンとリトルエンディアン

「UTF」系列の文字コードでは、同じ文字コードでも「ビッグエンディアン」「リトルエンディアン」という区別を持つ。
違うのはビット列(バイト)の並び順。

例えばUTF-16だと「あ」は「0x3042」と表されるが、これを後ろのバイトから並べ直す、つまり「30」と「42」をひっくり返すと「0x4230」というビット列になる。
このひっくり返したものが「リトルエンディアン」で、ひっくり返す前のものが「ビッグエンディアン」になる。

2つをデータ上で区別する方法だが、テキストデータの先頭に特定のビット列を付与することで行う。もしくは文字コードで元からどちらを使用するかを区別するようにもできる。

このテキストデータの先頭に付与したビット列を「BOM」(Byte Order Mark)と言う。

文字コードエンディアンBOMの有無BOM
UTF-8ビッグ省略可能0xEFBBBF
UTF-8Nビッグ無し
UTF-16ビッグ省略可能0xFEFF
UTF-16リトル省略可能(非推奨)0xFFFE
UTF-16BEビッグ無し
UTF-16LEリトル無し
UTF-32ビッグ省略可能0x0000FEFF
UTF-32リトル省略可能(非推奨)0xFFFE0000
UTF-32BEビッグ無し
UTF-32LEリトル無し

コメントログ
※コメントは最新50件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
商品ページ
Amazon
※収益広告
管理人作品宣伝
VRoidポーズ集-Part03
3Dモデル / 最終更新:2024-12-03
VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズ…VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズが中心に入っています。

Boothで閲覧する
利用素材等の詳細情報
【アークナイツ】アークナイツ運動会-関所破壊レース
動画 / 最終更新:2025-01-16
アークナイツ生息演算の岸壁の関の関門を誰が最速で破壊できるかを競います。…アークナイツ生息演算の岸壁の関の関門を誰が最速で破壊できるかを競います。

YouTubeで閲覧するニコニコ動画で閲覧する
利用素材等の詳細情報
作品一覧はこちら
関連ページ
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-03
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-02
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する Part-01
概要 three.js・three-vrm.jsを使用して、VRoidをWebページ上に表示する方…
GIF / APNG(アニメーション付きPNG)ファイル解析ページ
ファイル読込・操作 以下に調べたいファイルを読み込ませてください。 ファイル情報 カラーパレットを…
gifler.js仕様メモ
本ページの趣旨 「gifler.js」という、gifアニメーションをcanvasに簡単に表示できる…
【プログラミング】実例で分かるかもしれない再帰処理
本ページは以下動画の台本を書き起こしたものです 解説の趣旨・方向性 皆さん、こんばんは今回はプログ…
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-公開
概要 SNSツイートを一元化するためのツールを作成しています(古い記事ですが、こちらのページで紹介…
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-Python
概要 概要 SNSのツイートを一元化する際の備忘録というかPythonコードの共有です。 それぞれ…
Windows-PowerShellを使用してのフォルダ内のファイル名を連番にリネームする
以下PowerShellコードを実行することで、フォルダ内のすべてのファイルのファイル名を「0001…
SCSSとやらでメディアクエリと疑似要素の組み合わせに小一時間苦戦したという話
SCSSとやらでメディアクエリと疑似要素の組み合わせに小一時間苦戦したという話 当然ですが本サイト…
管理人ツイート
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグプログラミングホラーポケットタウン怪談気ままな日記情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
メイド・オブ・ザ・デッド-攻略お助け情報
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
651.6585 pt
ポケットタウン_パズル一覧
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
648.2143 pt
剣と魔法と学園モノ。2G - パーティ編成確認ツール
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
159.1413 pt
アークナイツ-昇進2率ランキング
アークナイツのTier表を作る際の備忘録です こちらのページで、昇進2率を基にTier表を作ろうと…
104.2237 pt
アークナイツ-常設商品-理性換算
概要 "常設商品でお得な商品はどれか"というのを理性に換算して一覧化したものとなります。 絶対的に…
75.7576 pt
ロックマンエグゼ3-バグのかけら必要数まとめ-
バグのかけら必要数 必要数 これぐらいあれば足りるはず。 コレクト要素に関わる部分だけなら、ギガチ…
75.3725 pt
アークナイツ-大陸版とグロ版(日本版)の実装遅れの比較
大陸版とグローバル版(日本版)の実装遅れの比較 別で実装スケジュールなるものを作っており、そこでは…
62.1607 pt
アークナイツ:統合戦略#5「サルカズの炉辺奇談」-「心打つ鍵鞭」攻略お助け情報
概要 統合戦略#5「サルカズの炉辺奇談」の公式サイトからできる「心打つ鍵鞭」についての、攻略お助け…
55.1837 pt
最新記事
アークナイツ-2025大感謝祭・春商品-理性換算
概要 "「2025大感謝祭・春商品」でお得な商品はどれか"というのを理性に換算して一覧化したものと…
本サイトについて
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
ヒカルの碁で、なぜ佐為は消えたのか
概要 ヒカルの碁で佐為が消えた理由について、「ヒカルの才能を目覚めさせるという役割を終えたから」と…
剣と魔法と学園モノ。3 - 各ステータス最高・最低となる「種族」「メイン学科」「サブ学科」の組合せ
概要 「ととモノ。3」で各ステータス最高・最低となる「種族」「メイン学科」「サブ学科」の組合せを一…
Python[完全]入門
商品ページ
Amazon
※収益広告