UTF-8(ユーティーエフエイト)は、数ある文字コードの中でも特にポピュラーなコードです。この記事では、Webサイト制作やSEOに携わる人に向けて、UTF-8という文字コードの重要性について解説します。UTF-8とは何か、なぜUTF-8が選ばれるのか、SEOとの関係性、その他の関連用語を学び、Webサイト制作に活かせるよう支援します。
日常的に文字コードを意識することはあまりありませんが、文字化けなどのエラーに遭遇することは時たまあります。そんなときのために、文字化けと密接に関わりのある文字コードの知識を習得しておいて損はありません。
目次
UTF-8(ユーティーエフエイト)を知る前に:文字コードとは?
文字コードやUTF-8(ユーティーエフエイト)は、文字化けという現象と密接に関わっています。そこで、UTF-8についての解説に入る前に、文字コードについて解説します。なお、文字化けについては、下記の記事でも詳しく解説していますので参考にしてください。
関連記事:文字化けはなぜ起こる?原因・理由と直し方、復元方法を解説
文字コードの基礎知識:文字をコンピュータが理解するための仕組み
文字コードとは、文字や記号をコンピュータが理解できるように、それぞれに割り当てた固有の番号を指します。コンピュータは、0と1の組み合わせでしかデータを認識できません。したがって、文字や記号に関しても0と1を組み合わせた数値に変換して認識させる必要があるのです。
例えば「A」であれば、1バイトの「01000001」という数字に変換されます。このように、数字の羅列がどの文字に対応しているかを決めたものが文字コードです。
文字コード:ASCII、Unicode、EBCDIC、Shift-JIS、EUCなど
コンピュータが世界中で使われ始めてから、さまざまな文字コードが誕生しています。
ASCII(アスキー)
ASCII(アスキー)は日本語に訳すと「情報交換用米国標準コード」となります。アメリカ規格協会(ANSI)が1963年に制定した文字コードです。
アルファベットや数字、記号やコンピュータ用制御記号など、128種類の文字を表します。ASCIIでは、1文字を7ビットで表しますが、基本的な管理単位が8ビット(1バイト)のため、実際には1文字を8ビットで表しています。
Unicode(ユニコード)
Unicode(ユニコード)は世界中のさまざまな言語の文字や記号に、重複しないようそれぞれ固有の番号を与えた文字コード規格です。主な言語のほとんどの文字を収録しており、通貨記号や約物といった文字と共に使われる記号や絵文字なども登録されています。
アメリカの大手IT企業を中心とする業界団体「Unicodeコンソーシアム」が仕様の策定・改定をおこなっています。
EBCDIC(エビシディック)
EBCDIC(エビシディック)は日本語訳では「拡張二進化十進コード」となります。米IBM社が1963年に策定した8ビットの文字コードです。
10進数を4ビットの2進数で表すBCD(Binary Coded Decimal)を8ビットに拡張する形で定義されました。主にIBMメインフレームおよびIBM iのようなミッドレンジシステムで使用されています。
Shift-JIS(シフトジス)
Shift-JIS(シフトジス)は1978年にMicrosoft社が開発した文字コードです。当時、コンピュータで日本語を扱うための標準的な方法が求められており、この要求に応える形で開発されました。
Windowsなどが標準の文字コードとして採用したのをきっかけに広く普及しています。
EUC(イーユーシー)
EUC(イーユーシー)はUNIXでさまざまな国の言語を扱えるようマルチバイト文字に対応した文字コードです。1985年に、AT&Tが日本語UNIXシステム諮問委員会の案に基づいて策定しました。
日本語対応のEUCを、EUC-JP(日本語EUC)といいます。
UTF-8(ユーティーエフエイト)の特徴・メリット
UTF-8は、特にWebサイト制作で推奨されている重要な文字コードです。ASCIIで定義した文字をnicodeで使うために制定されました。続いてはUTF-8の特徴を見ていきましょう。
UTF-8の特徴1:可変長
可変長とは、長さや文字数などが決まっていないことを指します。 UTF-8は、各文字を1~4バイトの可変長で表します。
UTF-8の特徴2:Unicode対応
ASCIIで定義された文字を、Unicodeのまま使用できることが利点の一つです。
UTF-8の特徴3:世界中の文字に対応
Unicodeの一種であるため、文字コードの種類も豊富でカバー範囲も広く、世界中のさまざまな文字に対応しています。
UTF-8が選ばれる理由
世界で最も使用されている方式がUTF-8です。その理由を、「汎用性」「SEOに強い」「互換性」の3つに着目して紹介します。
UTF-8が選ばれる理由1:汎用性
UTF-8は世界中のさまざまな文字を表現できるUnicodeの符号化方式の一つで、汎用性の高い文字コードです。
UTF-8が選ばれる理由2:SEOに強い
Googleをはじめとする主要な検索エンジンはUTF-8によるエンコード(詳細は後述)を推奨しています。したがってUTF-8は、SEOに強いといえます。
UTF-8とSEOの関連性については、のちほど詳しく説明します。
参考資料:Google の URL 構造ガイドライン | Google 検索セントラル | ドキュメント | Google for Developers
UTF-8が選ばれる理由3:互換性が高い
多くのオペレーティングシステムやプログラミング言語、Webブラウザやデータベースなどが、UTF-8をサポートしています。これにより、異なるシステム間でのデータのやり取りがスムーズとなり、互換性の問題が軽減されます。
UTF-8とUnicodeの関係性
UTF-8のUTFは「Unicode Transformation Format」の略です。Unicodeをバイト列に変換するための方式を指します。
Unicodeとは?
Unicodeとは「符号化文字集合」と呼ばれます。分かりやすく表現すると、文字とその文字に割り当てられた番号の対応表のことです。世界中の文字を統一的に扱うための文字コード規格になります。その仕組みは、大きく分けて「コードポイント」「文字集合」「符号化方式」の3つの要素で構成されています。
コードポイント
文字それぞれに固有の番号が割り当てられており、この番号をコードポイントと呼びます。コードポイントは、「U+XXXX」という形式で表記されます。なお、XXXXの部分は16進数です。
文字集合
文字集合は、世界中のさまざまな文字のうち、どの文字を使うのかということが定められた文字の一覧表です。
符号化方式
Unicodeのコードポイントは、そのままの状態ではコンピュータで処理できません。文字集合を用いて、文字をどのようなコードに当てはめるか決定するのが符号化方式です。
UnicodeとUTF-8の違い
UnicodeとUTF-8は、どちらもコンピュータで文字を扱う上で重要な概念ですが、その役割は異なります。
世界中のあらゆる文字とそれに対応するコードポイントを定義した文字集合がUnicodeです。それぞれの文字に固有のコードポイントを割り当てることで、文字の識別と処理を可能にします。分かりやすく表現すると「文字とコードポイントの対応表」になります。
UTF-8は、Unicodeのコードポイントをコンピュータが処理可能なバイト列に変換するための「文字符号化方式」の一つです。Unicodeでは、一つの文字に対して複数のバイトが必要となるケースもあります。しかし、UTF-8は可変長のバイト列を用いるため、効率的なデータ保存や転送を実現できます。
Unicodeの重要性とUTF-8との関係
Unicodeは、世界中のあらゆる文字にコードポイントを割り当てる標準規格です。異なる言語や文字システムを統一的に表現するために使用されます。
UTF-8は「Unicode Transformation Format 8」の略です。Unicodeのコードポイントをバイト列に変換するための方式を指します。つまり、Unicodeの規格に則って、UTF-8のバイト列に変換する仕組みです。
UTF-8とShift-JISの違い
UTF-8は、Unicodeをベースとした文字コードです。ASCIIと同じ文字は1文字1バイト、その他の文字を2~6バイトの範囲で表現します。一方、Shift-JISは日本語の文字コードとして開発されたという背景があります。
Shift-JISの特徴と問題点
ここでは、Shift-JISの特徴と問題点を以下の通りに解説します。
特徴
Shift-JISは漢字だけでなくアルファベットや数字、記号などすべての文字を16ビット(最大65536文字)で表現できます。消費バイト数が、比較的少ないのが特徴です。
問題点
Shift-JISは、使い方によって文字化けする恐れがあります。また、文字種が9,000程度しかありません。
UTF-8とShift-JISの比較
UTF-8は、世界中の文字を同じ文字コードで表現することが可能です。一方のShift-JISは、主に日本国内で使用される文字の表現に特化しています。また、テキストデータのサイズが問題となる場合であれば、UTF-8は英語のテキストなら効率的に保存可能です。一方で、日本語であればShift-JIS が有利になることもあります。
UTF-8とShift-JISはいつ、どちらを使うべきか?
UTF-8とShift-JISのどちらを使うかは、使用するオペレーティングシステムやコーディングの対象によって異なります。
例えば、オペレーティングシステムが「Windows」であればShift-JIS、「Mac」であればUTF-8が一般的です。また、コーディングの対象がHTMLコーディングであればUTF-8が推奨されており、Shift-JISは非推奨となっています。
UTF-8とUTF-16、UTF-32の違い
UTF-8、UTF-16、UTF-32とは、文字集合であるUnicodeから符号化(エンコーディング)する符号化方式の種類を指します。ここでは、UTF-8とは方式の異なるUTF-16とUTF-32について解説します。
UTF-16とは
UTF-16とは、以下のような特徴を持つ符号化方式です。
● Unicodeの符号位置(コードポイント)を16ビットで表現する方式
● 「U+0000~U+FFFF」の範囲は、16ビットデータとして格納
● 「U+10000~U+10FFFF」の符号位置は、32ビットデータとして格納(サロゲートペア)
なお、サロゲートペアとは、16ビット幅のコードポイントを2つ使い、U+10000 ~ の文字を表現する方式です。UTF-8とUTF-16の違いは、日本語を多く扱う場合、UTF-16のほうがバイト数に関しては少なくて済むという点になります。
UTF-32とは
UTF-32は、サロゲートペアを使用せずに、常に32ビットでUnicodeのコードポイントを表現できる符号化方式です。すべての文字を32ビットで表現するため、UTF-8の可変長に対して固定長になります。
UTF-8のメリットとデメリット
続いて、UTF-8のメリットとデメリットを解説します。
メリット1:互換性が高い
UTF-8はほとんどのコンピュータ環境に対応しています。文字コードの中には、コンピュータ環境に対応していなかったり、スマホにしか対応していなかったりするものもあります。
UTF-8は、異なるシステム間でのデータのやり取りがスムーズとなり、互換性の問題が軽減されるのです。
メリット1:文字化けする確率が低い
UTF-8はUnicodeの一種で、文字コードの種類が豊富です。カバー範囲も広く、世界中のほとんどの言語に対応しています。そのため、文字化けする確率が低いというメリットがあります。
デメリット1:Shift-JISと比べるとバイト数が多い
UTF-8は、英数字および制御文字は1バイトで表現されており、各国語文字は1文字2~6バイトで表現されます。一方、Shift-JISでは、英数字および制御文字は1バイトで表現されており、 各国語文字は1文字が2バイトで表現されます。したがって、UTF-8の方がShift-JISと比べるとバイト数が多く、容量が約1.5倍かそれ以上のサイズになってしまうのがデメリットといえるでしょう。
BOM(Byte Order Mark)とは?
Unicodeには、BOM付きとBOM無しがあり、BOMの有無によって実行結果が異なるケースがあります。BOMとは、バイトオーダーマーク(byte order mark)の略で、符号化されたテキストの先頭に付与される数バイトのデータのことです。このデータにより、「Unicodeのデータだということ」と「符号化形式の種類」を示せるのです。ここでは、以下の通り「BOMの役割」と「UTF-8におけるBOMの扱い方」について解説します。
BOMの役割
BOMの役割として挙げられるのは、以下の通りになります。
● 異なるプラットフォームやオペレーティングシステムでのテキストファイルの解釈を容易にします。
● 異なるUnicodeエンコーディングを区別します。
● ファイルのエンコーディングや文字の並び順(バイトオーダー)を示します。
UTF-8におけるBOMの扱い方・BOM付き、BOM無しの違い
UTF-8の「BOM付き」と「BOM無し」の違いは、ファイルの先頭に「このファイルはUTF-8です」というマーク「0xef 0xbb 0xbf」を付与するかしないかです。
BOMの有無は、場面によってメリットやデメリットとなります。BOMが付与されていれば、テキストエディタなどでエンコーディング形式を選択する必要がありません。しかし、BOMが付与されていることでプログラムが正常に動作しないケースもあります。また、BOMが付与されていなければ、文字化けが発生することもあるのです。
一般的にBOMが付与されていないと、ExcelでCSVファイルを開いたときに文字化けが起こることがあります。
文字化けとUTF-8
文字化けとは、コンピュータが文字を読み込んだ際に、エンコーディング作業の誤りで別の文字として認識されてしまうことを指します。ここからは「文字化けの原因と対策」と、文字化けした場合の対処方法である「文字コードの変換方法」を簡単に紹介します。詳しい内容を知りたい場合は下記の記事を参考にしてください。
関連記事:文字化けはなぜ起こる?原因・理由と直し方、復元方法を解説
文字化けの原因と対策
文字化けの原因として挙げられるのは、主に文字コードの不一致です。例えば、テキストを作成した側と開いた側で文字コードが異なると文字化けが起こります。文字化けを防止するには、以下のような方法があります。
● テキストの受け取り側の文字コードを作成側に合わせる
● 文字コードの変換機能を使用する
● 汎用性の高いUTF-8を採用する
● 絵文字や機種依存文字を使わない
文字コードの変換方法
テキストファイルを開いたときに、文字化けして読めなかった場合の文字コード変換方法を紹介します。
1. テキストファイル(書式なし)を「メモ帳」で開く
2. メニューの「ファイル」から「名前を付けて保存」を選択する
3. 画面下側のエンコード選択より「UTF-8」を選んで保存する
UTF-8とSEOの関係性
先ほども述べたように、UTF-8はSEO(検索エンジン最適化)に強い文字コードです。SEOを意識するのであれば、文字コードはUTF-8にすることをおすすめします。そこで、3つの観点からUTF-8とSEOとの関係性について解説します。
関連記事:【2024年最新】SEOとは?基礎知識と具体的な施策を詳しく解説
検索エンジンがUTF-8を好む理由
UTF-8は、世界中のさまざまな言語を同時に扱える文字コードです。Googleなどの検索エンジンは、UTF-8形式のWebサイトを高く評価しています。
一方のShift-JIS形式のWebサイトは、検索エンジンのクローラによる解析が難しくなる可能性があります。これにより、検索結果の順位に悪影響を与える可能性があるのです。
Webサイトの文字コードがShift-JISだった場合は、UTF-8に変更することをおすすめします。この変更により、検索エンジンでのコンテンツ理解と検索順位の向上が期待できるでしょう。
HTMLの記載方法:文字セット(character set)をUTF-8にする
Webページで文字コードをUTF-8にする際には以下を実装しましょう。
●Webサイトのヘッダーで明確にUTF-8を宣言する
●HTMLの文字エンコーディングを<meta charset=”UTF-8″>で指定する
●サーバー側の設定でもUTF-8をデフォルトにする
Webページの文字コード指定は、ソースコードを確認すれば分かります。多くのブラウザでは、右クリックから「ページのソースを表示」をクリックすることでソースコードを表示できます。ソースコードのヘッダー(<head></head>の囲みの中)に以下の記述があれば文字コードが指定されていると分かります。
<meta charset=”UTF-8”>
もし、指定されていなければ文字化けする恐れがあるため、上記の通りに指定してください。
参考資料
・HTMLで文字エンコーディングを指定する(World Wide Web Consortium)
・Google がサポートしている meta タグと属性| Google 検索セントラル | ドキュメント | Google for Developers
エンコード・エンコーディング・デコードとは
これまで本文中でたびたび出てきたエンコード(エンコーディング)やデコードについて説明します。エンコードとデコードは、データの形式や表現を変換するための一般的な操作です。
関連記事:動画ファイルの形式や拡張子を解説!種類やシーン別の使い方を紹介!
エンコード・エンコーディングとは
エンコードとは、データを別の形式または表現方法に変換する処理を指します。データを特定の形式に合わせて変換し、データの保持や転送、または他の処理に適した形式にすることが目的です。
エンコードの結果は通常、テキストやバイナリ、またはその他のフォーマットで表現されます。
デコードとは
デコードとは、エンコードされたデータを元の形式に戻す処理を指します。
データのデコードには、特定の規格やフォーマットにのっとった解析が必要です。データがエンコードされれば、元データは変換されて、テキスト形式やバイナリ形式などで表現されます。エンコードされたデータを解析し、元のデータの値や意味を復元することが、デコードの目的です。
Shift-JISからUTF-8に変換する方法
データの文字化けやデータをアップロードできないといった問題を解決するため、文字コードをShift-JISからUTF-8に変換する方法を解説します。なお、変換の際に使用したエディタやバージョンは以下の通りです。
● エディタ:サクラエディタ v2.4.2.6048
● Excel:バージョン 2411
エディタで文字コードを変換する方法
エディタでの変換は以下の手順で行います。
1. テキストエディタを開く
2. 「ファイル」⇒「開く」をクリックし、変換したいShift-JISエンコードのファイルを開く
3. 「設定」タブの「文字コードセット指定」をクリック
4. 「文字コードの指定」ウィンドウが開くので、「文字コードセット」のプルダウンメニューからUTF-8を選択
5. エンコードをUTF-8に変更するため、「名前を付けて保存」で保存
Excel(エクセル)で文字コードを変換する方法
Excelでの変換は以下の手順で行います。
1. Excelを開き、「データ」タブをクリック
2. 「テキストまたはCSVから」をクリック
3. 変換したいテキストファイルを選択し、「インポート」をクリック
4. インポートウィザードが開くので、「元のファイル」で「932:日本語(シフトJIS)」を選択
5. 「区切り記号」で「コンマ」を選択し、「データ変換」をクリック
6. 「Power Queryエディター」が開くので、テキストが正しく読み込まれているか確認
7. 確認が出来たら「閉じて読み込む」をクリック
8. 「ファイル」⇒「名前を付けて保存」を選択
9. 「CSV UTF-8(カンマ区切り)(*.csv)」を選択し、名前を付けて「保存」をクリック
関連記事:インポートとは?基本的な意味とエクスポートとの違い
Excel(エクセル)でのUTF-8の扱い方
UTF-8は、Excel(エクセル)で扱え、CSVファイルをUTF-8でエンコーディングできます。ここでは、ExcelでのUTF-8の扱い方を解説します。
ExcelでUTF-8を使用するメリット
ExcelでUTF-8を使用するメリットを解説します。
文字化けの防止
UTF-8は、世界中のほぼすべての言語や文字をエンコーディングできます。異なる言語で書かれたテキストデータを含むCSVファイルでも文字化けしません。
反対に、UTF-8でエンコーディングしなかったケースで、特に英語以外の言語を含んでいるときは、データを開いたときに文字化けしやすいので注意が必要です。「データを閲覧できない」ときは、最初からUTF-8でエンコーディングしておくとよいでしょう。
多言語対応の強化
UTF-8でのエンコーディングは、文字化け防止だけでなく、多言語対応の強化にもつながります。
例えば、データの作成者と閲覧者の使用言語が異なるケースでも、作成者が使用した言語で正確に表示されます。したがって、意図の異なる自動翻訳や文字崩れが起きません。記号や特殊文字もそのままエンコードされるので、金融データや科学技術文書など、特殊文字を頻繁に使用する業種でも安心です。
データの互換性向上
UTF-8は、オープンなエンコーディング手法で、多くのプラットフォームやアプリケーションで互換性があります。例えば、パソコンで作成したExcelのデータをUTF-8でエンコーディングし、スマホやタブレットのExcelで開くことも可能です。デバイスを選ばない点も重用されやすいポイントです。
ExcelでUTF-8を扱う方法
ExcelでUTF-8を扱う方法は以下の通りです。
1. UTF-8を設定したいExcelファイルを開く
2. 「ファイル」⇒「名前を付けて保存」をクリックする
3. 「名前を付けて保存」ダイアログから「ファイルの種類」プルダウンを開く
4. 「CSV UTF-8(コンマ区切り)」をクリックする
5. メモ帳など、UTF-8に対応したテキストエディタで開くとことでデータの確認が可能
ExcelでCSV UTF-8ファイルを正しく開く方法
ExcelでCSV UTF-8ファイルを正しく開く方法は、以下の通りです。
1. Excelの「データ」タブ内にある「データの取得」⇒「ファイルから」⇒「テキストまたはCSVから」を選択
2. 開きたいファイルがExcelであればExcelを、XMLであればXMLを選択
3. プレビュー画面で確認し、問題なければ「読み込み」をクリック
4. UTF-8でエンコーディングする前の形式で表示される
UTF-8と改行コード
改行コードは、テキストファイルの中で新しく行を開始するために必要な特殊文字です。ここでは、以下の通り「改行コードの種類」「UTF-8での改行の扱い」について解説します。
改行コードの種類
改行コードとは、テキストファイルにおける行の終わりを示す特殊な文字や文字列を指します。主に3つの種類があります。
LF(Line Feed:改行)
カーソルを新しい行に移動することで、Unix・Linux・macOS(9以降)・Androidで使用
CR(Carriage Return:復帰)
カーソルを左端の位置に戻すことで、macOS(9以前)で使用
CRLF(Carriage Return Line Feed:CRとLFを足したもの)
カーソルを左端の位置に戻し、新しい行に移動することで、MS-DOSとWindowsで使用
UTF-8での改行の扱い
UTF-8での改行の扱いは以下の通りです。
● ファイルをUTF-8で保存する際の改行コードはLFとします。
● 改行コードは、文字コードによって変化するのではなく、WindowsであればUTF-8やShift-JISなどの文字コードによらずCRLFと決まっています。
● 改行コードはとても重要で、Windowsで作成したファイルをUnix系OSのLinuxに持ち込むと、改行コードが原因で動かないことがあります。
まとめ
UTF-8は、汎用性と信頼性の高さから、現代のWebサイトやアプリケーションで最も広く利用されている文字コードです。この特徴を理解することで、より効率的なマーケティング活動を行うことができます。
また、文字化けの問題を解消できれば、業務効率化も進むでしょう。
この記事で学んだ知識を活かして、自社のウェブサイトやコンテンツの文字コード設定を確認し、SEOについても見直してみましょう。