概要

文字エンコーディング

文字エンコーディングは、文字や記号をコンピュータが処理できるバイト列に変換するための規則体系です。ASCIIやUTF-8などの国際標準から、Shift_JISやEUC-JPなどの日本語専用エンコーディング、各国固有のコードページまで多様な方式が存在します。現在はUnicodeを基盤としたUTF-8が世界標準として広く採用されていますが、レガシーシステムとの互換性維持のため、様々なエンコーディング方式の理解が依然として重要です。

文字コード Unicode UTF-8 文字セット 国際化 テキスト処理
コード スラッグ 名称 概要 カテゴリ ianaName mibEnum
utf-8 utf-8 UTF-8 Unicodeを1〜4バイトの可変長で表現する文字エンコーディングです。 Unicode系 UTF-8 106
utf-16 utf-16 UTF-16 Unicodeを16ビット単位で表現する文字エンコーディングです。 Unicode系 UTF-16 1015
utf-32 utf-32 UTF-32 Unicodeを固定長32ビット(4バイト)で表現する文字エンコーディングです。 Unicode系 UTF-32 1017
us-ascii us-ascii US-ASCII 7ビットで128文字を定義する基本的な文字エンコーディングです。 ASCII系 US-ASCII 3
iso-8859-1 iso-8859-1 ISO-8859-1 (Latin-1) 西ヨーロッパ言語向けの8ビット文字エンコーディングです。 ISO-8859系 ISO-8859-1 4
iso-8859-2 iso-8859-2 ISO-8859-2 (Latin-2) 中央ヨーロッパ言語向けの8ビット文字エンコーディングです。 ISO-8859系 ISO-8859-2 5
iso-8859-5 iso-8859-5 ISO-8859-5 (Cyrillic) キリル文字向けの8ビット文字エンコーディングです。 ISO-8859系 ISO-8859-5 8
iso-8859-7 iso-8859-7 ISO-8859-7 (Greek) 現代ギリシャ語向けの8ビット文字エンコーディングです。 ISO-8859系 ISO-8859-7 10
iso-8859-15 iso-8859-15 ISO-8859-15 (Latin-9) ISO-8859-1の改訂版でユーロ記号を含む8ビット文字エンコーディングです。 ISO-8859系 ISO-8859-15 111
shift_jis shift-jis Shift_JIS WindowsとMacintoshで標準的に使用される日本語文字エンコーディングです。 日本語 Shift_JIS 17
euc-jp euc-jp EUC-JP Unix系システムで使用される日本語文字エンコーディングです。 日本語 EUC-JP 18
iso-2022-jp iso-2022-jp ISO-2022-JP 7ビット環境での日本語電子メール用エンコーディングです。 日本語 ISO-2022-JP 39
gb2312 gb2312 GB2312 中国簡体字の基本的な文字エンコーディングです。 中国語 GB2312 2025
gbk gbk GBK GB2312を拡張した中国語文字エンコーディングです。 中国語 GBK 113
gb18030 gb18030 GB18030 中国の現行国家標準で、全てのUnicode文字を表現可能です。 中国語 GB18030 114
big5 big5 Big5 台湾・香港で使用される繁体字中国語文字エンコーディングです。 中国語 Big5 2026
euc-kr euc-kr EUC-KR Unix系システムで使用される韓国語文字エンコーディングです。 韓国語 EUC-KR 38
iso-2022-kr iso-2022-kr ISO-2022-KR 7ビット環境での韓国語電子メール用エンコーディングです。 韓国語 ISO-2022-KR 37
koi8-r koi8-r KOI8-R ロシア語キリル文字用の8ビット文字エンコーディングです。 キリル文字 KOI8-R 2084
koi8-u koi8-u KOI8-U ウクライナ語キリル文字用の8ビット文字エンコーディングです。 キリル文字 KOI8-U 2088
windows-1252 windows-1252 Windows-1252 Microsoft Windowsで使用される西ヨーロッパ言語向け8ビットエンコーディングです。 Windowsコードページ windows-1252 2252

文字エンコーディングとは、文字や記号をコンピュータが処理可能なバイト列(数値の並び)に変換するための規則体系です。コンピュータは本質的に数値しか扱えないため、人間が使用する文字を数値に対応付ける仕組みが必要不可欠です。1960年代にASCIIが策定されて以来、様々なエンコーディング方式が開発され、現在ではUnicodeを基盤としたUTF-8が国際標準として広く採用されています。

文字エンコーディングの理解は、ソフトウェア開発において極めて重要です。Webアプリケーション、データベース、ファイル入出力など、テキストを扱うあらゆる場面でエンコーディングの知識が求められます。特に多言語対応のシステムでは、適切なエンコーディングの選択と一貫した使用が、データの整合性を保つ鍵となります。誤ったエンコーディングの使用は、文字化けやデータ損失といった深刻な問題を引き起こす可能性があります。

歴史的に見ると、各国・地域が独自のエンコーディング方式を開発してきました。日本ではShift_JIS、EUC-JP、ISO-2022-JPが広く使用され、中国ではGB2312からGBK、GB18030へと発展してきました。韓国ではEUC-KR、ロシアではKOI8-Rといった具合です。これらのレガシーエンコーディングは、過去のシステムとの互換性維持のために今でも重要な役割を果たしています。しかし、グローバル化が進む現代では、単一の文字セットで世界中の文字を扱えるUnicodeの採用が標準となっています。

現代の開発においては、特別な理由がない限りUTF-8を使用することが強く推奨されます。UTF-8はASCII互換性を持ちながら、全てのUnicode文字を表現できるため、英語圏のシステムとの親和性を保ちつつ多言語対応が可能です。W3C、WHATWG、IETFなどの標準化団体も、新規のWebコンテンツにはUTF-8の使用を推奨しています。2023年時点で、Web上のコンテンツの98%以上がUTF-8で符号化されており、事実上の世界標準となっています。

レガシーシステムとの連携やデータ移行プロジェクトでは、エンコーディングの変換が必要になることがあります。その際、文字の対応関係が1対1でない場合や、変換先のエンコーディングに存在しない文字がある場合には、情報の損失が発生する可能性があります。例えば、Shift_JISからUTF-8への変換は一般的に安全ですが、その逆方向ではUnicodeの一部の文字が表現できない場合があります。このような変換作業では、元のエンコーディングの正確な特定と、変換時の例外処理の適切な設計が重要です。