個人ブログのようなものです。とくにジャンルはありません。 サイト運営に関するアンケート実施中
新装版 タイム・リープ〈上〉 あしたはきのう (メディアワークス文庫)
商品ページ
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件が表示されます
コメント投稿




画面下部の「コンタクト」からも連絡可能です。
D.C.Ⅱ.S.S.~ダ・カーポⅡセカンドシーズン~(TV番組)
商品ページ
Amazon
※非収益広告
管理人作品宣伝
AIの考えた怖い話-Part01
動画 / 最終更新:2024-11-28
怪談系の怖い話を載せています。特に設定部分は人の手が入ってますが、なるべく生成AI(C…怪談系の怖い話を載せています。特に設定部分は人の手が入ってますが、なるべく生成AI(ChatGPT)を利用して書いています。

YouTubeで閲覧するニコニコ動画で閲覧する
利用素材等の詳細情報
VRoidポーズ集-Part03
3Dモデル / 最終更新:2024-12-03
VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズ…VRoidのポーズデータ(vroidpose)集です。 写真とかによくありそうなポーズが中心に入っています。

Boothで閲覧する
利用素材等の詳細情報
作品一覧はこちら
関連ページ
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とやらでメディアクエリと疑似要素の組み合わせに小一時間苦戦したという話 当然ですが本サイト…
ボタンを押す演出でCSSのtranslateYやtopを使用することの問題
ボタンを押す演出でCSSのtranslateYやtopを使用することの問題…
東京03のyoutubeチャンネルの概要ページの挙動がおかしい
東京03のyoutubeチャンネルの概要ページの挙動がおかしい…
Youtube Data APIでハンドルIDからユーザ情報を取得できない
Youtube Data APIでハンドルIDからユーザ情報を取得できない問題 結論から言うと現在…
管理人ツイート
本サイトのタグ一覧
NovelAIR18VRoidWebサイト作成Webツールととモノ。アークナイツアークナイツ-ステージ攻略日記アズールレーンアズールレーン-日記ウマ娘ギャラリーゲームデビラビローグプログラミングホラーポケットタウン怪談気ままな日記情報技術情報技術-WebAPI知的財産権統合戦略白夜極光本サイトについて魔王スライム様がんばる!漫画
人気記事
メイド・オブ・ザ・デッド-攻略お助け情報
ネタバレ注意! 本ページは『メイド・オブ・ザ・デッド』の情報を記録しているものです。 攻略の参考に…
1490.7821 pt
ポケットタウン_パズル一覧
グレーのピースの数 (Number of gray pieces):検索グレーピースの数を入力して、…
949.7602 pt
剣と魔法と学園モノ。2G - パーティ編成確認ツール
ツール概要 ととモノ。2Gのパーティ編成を考える際に使うツールです。 あくまでストーリークリアまで…
167.1837 pt
アークナイツ:統合戦略#5「サルカズの炉辺奇談」-「心打つ鍵鞭」攻略お助け情報
概要 統合戦略#5「サルカズの炉辺奇談」の公式サイトからできる「心打つ鍵鞭」についての、攻略お助け…
121.0000 pt
アークナイツ-常設商品-理性換算
概要 "常設商品でお得な商品はどれか"というのを理性に換算して一覧化したものとなります。 絶対的に…
117.5556 pt
アークナイツ-昇進2率ランキング
アークナイツのTier表を作る際の備忘録です こちらのページで、昇進2率を基にTier表を作ろうと…
82.7206 pt
ロックマンエグゼ3-バグのかけら必要数まとめ-
バグのかけら必要数 必要数 これぐらいあれば足りるはず。 コレクト要素に関わる部分だけなら、ギガチ…
81.0000 pt
アークナイツ-テラ飯(ダンジョン飯コラボ)商品-理性換算
概要 掲題の有料商品について、お得な商品はどれかというのを理性に換算して一覧化したものとなります。…
53.1915 pt
最新記事
ニコニコで著作権侵害の通報(削除申請)をしたときの話
概要 ニコニコ動画において著作権侵害の通報をしたので、その時の手順や入力内容について迷ったところの…
GIF / APNG(アニメーション付きPNG)ファイル解析ページ
ファイル読込・操作 以下に調べたいファイルを読み込ませてください。 ファイル情報 カラーパレットを…
スペシャルサンクス
順不同、敬称略。 サイト構築系 全般 ・さくらインターネット:レンタルサーバ ・GitHub:ソー…
本サイトについて
本サイトの概要 概要 個人ブログのようなものです。とくにジャンルはありません。 本サイト内の情報に…
スッキリわかるJava入門 第3版 (スッキリわかる入門シリーズ)
商品ページ
Amazon
※収益広告