Home / 用語 / UTF(Unicode Transformation Format)

UTF(Unicode Transformation Format)

※本ページにはプロモーション(広告)が含まれています











一般IT用語

読みゆーてぃーえふ
英語UTF

ひとことでいうと

Unicode Transformation Formatの略称で、Unicodeの文字を実際のバイト列に変換する符号化方式。UTF-8/UTF-16/UTF-32の3種類があり、Web・CSV・プログラミング・データベースなど、現代のあらゆるデジタル文書で使われる国際標準の文字エンコーディングです。

詳しい解説

UTF(Unicode Transformation Format:ユニコード・トランスフォーメーション・フォーマット)とは、世界中の文字を一元的に扱う文字集合「Unicode」を、コンピュータが扱う実際のバイト列に変換するための符号化方式の総称です。Unicodeそのものは「Aは0x0041」「あは0x3042」といった抽象的な番号(コードポイント)を定めるだけで、それをファイルやネットワーク上にどう並べるかは別の取り決めが必要で、その役割を担うのがUTFです。

## UTF-8の特徴
UTF-8は1〜4バイトの可変長エンコーディングで、ASCII文字(半角英数字・記号)を1バイトでそのまま表現できる「ASCII互換性」が最大の強みです。日本語のひらがな・カタカナ・漢字はおおむね3バイトで表現されます。ファイルサイズが英語中心のテキストで小さく、世界中のWeb(HTML5の標準)・JSON・XML・Linux/macOSのシステムロケール・GitHubなど多くのプログラミング環境のデフォルトとして採用されています。BOM(Byte Order Mark:先頭3バイト `EF BB BF`)の有無で「UTF-8 BOMあり」「UTF-8 BOMなし」が区別され、Web標準ではBOMなしが推奨されています。

## UTF-16の特徴
UTF-16は基本的に2バイト(16ビット)で1文字を表現する固定長寄りの符号化方式ですが、絵文字や一部の珍しい漢字などコードポイントが大きい文字は「サロゲートペア」と呼ばれる4バイト表現を使います。Windowsの内部文字列・Java・JavaScriptの内部表現・Microsoft .NETのstring型などで採用されており、Office製品(Word/Excel等)の内部処理もUTF-16ベースです。バイトオーダー(並び順)の違いにより、UTF-16LE(リトルエンディアン)とUTF-16BE(ビッグエンディアン)があり、BOM(先頭2バイト `FF FE` または `FE FF`)で区別します。

## UTF-32の特徴
UTF-32は1文字を必ず4バイトで表現する完全固定長の符号化方式です。インデックスアクセスが容易で「N文字目」を即座に取得できる利点があるものの、ASCII文字でも4バイトを使うためファイルサイズが大きく、実運用ではほぼ使われません。主に言語処理系の内部表現や、コードポイント単位での処理を高速化したい場面で限定的に利用されます。

## BOM(Byte Order Mark)について
BOMはファイルの先頭に付加される識別バイト列で、エンコーディングの種類とバイトオーダーを示します。UTF-8のBOM(`EF BB BF`)はASCII互換性を損なうため、Web標準・LinuxプログラミングではBOMなしが推奨されます。一方、Windowsのメモ帳で「UTF-8」を選択して保存するとBOMが付与され、これがExcelやLinuxサーバーで読み込み不具合の原因になることがあります。

## Shift_JISとの違い
従来の日本語環境ではShift_JIS(CP932)が広く使われてきましたが、JIS第1・第2水準漢字までしか表現できず、絵文字・中国簡体字・韓国ハングルなどは扱えません。UTFは全世界の文字を一つの体系で扱えるため、グローバル対応・絵文字対応・データベース統一の観点でShift_JISからUTF-8への移行が進んでいます。Shift_JISで作成された古いCSVファイルをExcelで開くと文字化けする問題は、UTF-8 BOM付きで保存し直すことで解決できます。

## Web標準としての位置づけ
HTML5仕様ではUTF-8がWebの標準文字エンコーディングと定められており、`<meta charset="UTF-8">` の宣言が事実上必須です。JSON仕様(RFC 8259)でもUTF-8がデフォルトと規定されており、現代のWeb APIはほぼ全てUTF-8でやり取りされます。MySQLでは `utf8mb4` という4バイト文字(絵文字含む)対応の文字セットが推奨されています。

## CSV/JSONでの取り扱い
CSVファイルはUTF-8で保存するのが現代の標準ですが、ExcelでCSVを開くとShift_JISと誤判定されて文字化けすることがあります。これを回避するには、CSVをUTF-8 BOM付きで保存するか、Excelの「データ」タブから「テキスト/CSVから」インポートを使ってエンコーディングを明示指定します。JSONは仕様上UTF-8固定で、BOMは付けないのが原則です。

## 変換方法
テキストエディタでの変換が最も簡単で、メモ帳・サクラエディタ・VS Codeなどで「エンコーディングを変更して保存」または「名前を付けて保存」時にUTF-8を指定します。Pythonでは `open(file, encoding='utf-8')` で読み書きでき、コマンドラインでは `nkf -w` や `iconv -f sjis -t utf-8` で変換可能です。

具体的な場面

ExcelでCSVファイルを開いたら日本語が「アブク��」のように文字化けする場合、そのCSVがUTF-8 BOMなしで保存されているのに、ExcelがShift_JISと誤判定しているケースが多いです。CSVを一度メモ帳で開き、「名前を付けて保存」→エンコーディングを「UTF-8 BOM付き」に変更して保存し直すと、Excelで正しく日本語表示されるようになります。逆に、Linuxサーバーへアップロードするスクリプトを書く場合は、UTF-8 BOMなしで保存しないと先頭の3バイトがプログラムの解析エラーを引き起こすことがあるため、用途に応じてBOMの有無を使い分けることが重要です。

別の呼び方

UTF-8
UTF-16
UTF-32
Unicode Transformation Format
ユニコード
Unicode符号化
ユーティーエフ

関連する用語

この用語に関する関連記事

Check Also

TP-Link Tapoカメラが接続できない・オフラインになる原因と解決法完全ガイド

【2026年最新版】TP-Link Tapoカメラが接続できない・オフラインになる原因と解決法完全ガイド

TP-LinkのTapo(タポ …