文字コードとは?

全般基礎

こんにちは!!IT業界に未経験で転職したパグプーです🐶
転職前に独学でITを勉強しましたが、実際に仕事を始めてみると、こんな疑問が出てきました。
「ITの専門用語って、なんとなくの理解で使ってしまうことが多くないですか?」
「勉強した知識を、実際の業務でどう使うのかイメージしづらいことってありませんか?」
このサイトでは、私自身が「これってどういう意味なんだろう?」と感じたIT用語を、できるだけわかりやすく紹介・解説していきます。

今回のテーマは「文字コード」です。
ファイルを開いたとき、日本語が「��」のように文字化けして困った経験はないでしょうか?
その原因の多くは、文字コードにあります。本記事では、なぜ文字コードの影響で文字化けが起きるのか、その仕組みをわかりやすく解説します。

文字コードの概要

文字コードとは、文字(あ・A・1・😊 など)をコンピュータが扱える数字に変換するためのルールです。
コンピュータは文字をそのまま理解できず、すべてを0 と 1 の数字で扱います。そのため、「A は 65」「あ は 12354」など、文字と数字の対応表が必要になります。この対応表こそが 文字コードです。
※65や12354は人間が文字コードを理解しやすいように10進数で表記しているだけで、実際にはコンピュータ内部で2進数(65の場合は01000001)に変換されて使われています。

文字コードの役割はシンプルで、次の 2 つに集約されます。
・文字を数字に変換する(保存・通信のため)
・数字を文字に戻す(表示のため)
文字コードにはいくつかの種類があります。文字から数字に変換したときの文字コードと、数字を文字に戻すときの文字コードが一致していないと、文字化けが発生します。

文字コードの種類

代表的な文字コードは以下の表のとおりです。他にも多くの種類が存在します。

文字コード特徴日本語対応主な用途
ASCII・英数字のみ
・最も基本
×・プログラム内部
・通信プロトコル
Shift_JIS・日本語を扱える
・古くから使われる
・Windows
・古いシステム
EUC-JP・UNIX 系でよく使われた日本語コード・Linux
・古い Web サーバ
UTF-8・世界中の文字を扱える
・現在の標準
・Web
・アプリ
・Linux
・Mac
UTF-16・Unicode を 2 バイト中心で扱う・Windows内部
・Excel など

文字コードの設定が必要なもの

文字コードの設定が必要になるかどうかは、ファイル形式によります。

ファイル形式文字コードの要否解説具体例
ファイル全体がテキスト形式必要データの中身がすべて文字列。読み書き時に文字コードが必須。文字コードが分からないと文字化けする。・.txt
・.csv
・.html
・.js
・.json
・.xml(単体保存)
ファイル全体がバイナリ形式不要データが構造化されたバイナリで、文字列として読む必要がない。アプリが独自のルールで解釈するため、ファイル全体として文字コードは不要。・.docx
・.xlsx
・.pptx
・.pdf
・.png
・.jpg
・.mp4
・.zip
バイナリ形式の内部にテキスト部分があるファイル全体としては不要(内部テキスト部分のみ必要)ファイル全体はバイナリだが、内部の一部にテキスト(XML など)が含まれる。その部分だけ文字コードが使われるが、ファイル全体として文字コードを設定する必要はない。・.docx(内部 XML は UTF-8)
・.xlsx(内部 XML は UTF-8)
・.pdf(文字オブジェクト部分のみ文字コード使用)

文字コードの設定方法(Windows向け)

ここでは、簡易的な操作として、メモ帳アプリによる設定方法を解説します。

●ファイル作成・保存時に文字コードを設定する方法
①メモ帳を開く
②内容を入力
③「ファイル」→「名前を付けて保存」
④下部の「エンコード」欄から選択

●既存ファイルの文字コードを確認する方法
①対象のファイルを右クリック
②「プラグラムから開く」で「メモ帳」を選択する
③右下を確認する
※メモ帳の文字コードの自動判別機能は精度が低く、判別を間違えることがあります。
→正確に確認したい場合、 VS Code や Notepad++ をお勧めします。

●既存ファイルの文字コードを変換する方法
①対象のファイルを右クリック
②「プラグラムから開く」で「メモ帳」を選択する
③「ファイル」→「名前を付けて保存」
④下部の「エンコード」欄から選択
※メモ帳の文字コードの自動判別機能は精度が低いため、ファイルを開いた時点で誤判定している可能性があります。誤判定した状態で保存すると、変換ではなく破壊になることがあります。
→安全に変換したい場合、 VS Code や Notepad++ をお勧めします。

[Q] どの文字コードを使うべき?

[A] 基本は UTF-8 で問題ありません。例外的に他の文字コードを使うべき場面もあります。

例外ケース:
・レガシーな日本企業のシステム → Shift_JISやEUC-JPを使用している場合アリ
・Windows の内部処理 → UTF-16

[Q] 文字コードの知識をどう活かせる?

[A] 文字化け対策に活かせます。

「ファイルは正しいはずなのに表示がおかしい」や「日本語が意味不明な記号になる」場合は、
保存時と表示時の文字コードが一致していないと考えられるようになります。

[A] システム連携する際のエラー対策の1つとして活かせます。

「古いシステムと新しいシステムの連携」や「外部サービスとの連携」の際に、
異なる文字コードが混在する環境では、データ破損や表示エラーの原因になります。

コメント

タイトルとURLをコピーしました