前回「文字コード」では、幾たびか変遷を経て現在の体系になったことをご紹介しました。
そこでも「過去の資産を受け継ぎつつ」と書きましたように、「UTF-8」のような新しい文字コードに集約されるわけではなく、「Shift-JIS」のような過去の文字コードも現存しますし今も使われています。

新旧の文字コードが入り混じった状況を、いくつか例示してみます。

あるホームページのソースコードの冒頭部分です。
4行めに「charset=UTF-8」という記述が見えますね。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />

また、他のページの同様部分を見てみると「charset=Shift_JIS」と書かれています。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

ホームページを記述する HTMLファイルの中ではこのように「charset」(文字集合)という指定でこのファイルで使用する文字コードを記載しているわけです。

次に、あるメールのヘッダ部分のソースを見てみます。

Date: Tue, 10 Mar 2020 05:28:31 +0000
Subject: =?UTF-8?B?5rS75YuV5aCx5ZGK44Gu44GU56K66KqN?=
From: xxxxx@uc-k.net
To: someone@uc-k.net
Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes
Content-Transfer-Encoding: base64

ここでも、下から 2行めに「charset="UTF-8"」という記述が見えます。
ただ、分かりにくくしているのが 2行めの「Subject:」欄です。
これは「活動報告のご確認」という題名を、文字コード「UTF-8」、エンコード方式「base64」(6行め)でエンコードした表記です。

メールでは、旧式(?)のメールサーバを通過する可能性から、メールの日本語などをメールアプリの中でエンコードし 7ビット文字である ASCII文字にした上で送信し、相手が受信すると相手のメールアプリが元の表示形式にデコードして表示しています。

次のメールソースも「charset=iso-2022-jp」という記述が見えます。
「iso-2022-jp」は、JISコードのことで、日本語メールとして広く一般に利用されている文字コードです。

To: =?iso-2022-jp?B?GyRCMHA7UjVXTG8bKEI=?= <abcd1234@gmail.com>
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)

--Apple-Mail-2FCFC8CB-0EBE-4247-A44F-7AC1668BA795
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: quoted-printable

上記のメールがやや複雑なのは、メール全体が「charset=iso-2022-jp」で構成されているわけではないところです。
マルチパートと言って、メールには添付ファイルも付けられますし、送付されたメールを引用して返信する場合もありますね。
1つ 1つの塊を順番に書けるわけですが、それぞれのパートごとに文字コードが異なることもあり得るわけです。

上記のメールでは、最初のパートは「charset=iso-2022-jp」ですが、次のパートは「charset=us-ascii」、最後のパートは再び「charset=iso-2022-jp」でした。

最近は Webページにしても メールにしても“文字化け”している文章というのはかなり減った印象があります。
そして、普段は Webページやメールのソースを見ることはないので、普通に表示されているだけにしか見えませんが、その裏では“過去”から“現在”に至る相互の互換性を維持するための仕組み作りが行われています。