0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

文字コードが違うことによる文字化けについて

Last updated at Posted at 2021-06-06

文字→バイト列の変換図

unicode.png

unicode

「符号化文字集合」とい呼ばれるも、文字に対して数字が割り振られたものです。
下記がunicode変換表。

ここで割り振られたコードポイントを、コンピュータが理解できる数字に変換する符号化方式がunicodeに用意されています。代表的なのが、utf-8utf-16utf-32 です。

コードポイント

文字に対応する数字を16進数で表したもの。

utf-8

Unicodeの符号化方式。文字にunicodeで紐付けられたコードポイントと呼ばれる数字を、8ビット方式の数字のバイト列にエンコード(変換)する際のルールです。

以下のような特徴があります。

  • UTF-8はほぼ全ての国の文字に対応しているため文字化けがおきずらい
  • 日本語の場合は3バイト以上使うため、Shift_JIS、EUC-JPなどと容量を比較すると1.5倍程度に容量が大きくなる

バイト列

8桁の0か1の整数。
一桁を1ビットと呼び、この1ビットには0か1の2進数しか入りません。つまり1ビットなら2通り、8ビットなら0から255までの256通りの数字を表現できます。

「変換されるイメージがわかない・・」という方は、下記ツールで2進数、10進数、16進数、の切り替えができます。

文字コードが違うことで文字化けが起きる理由

設定された文字コードが違うことで、文字が割り当てられていない数値が渡されたり、意図しない文字として認識されることが原因です。

つまり、「HTMLファイル自体の文字コードと、ブラウザが解釈した文字コードが異なるとき」に文字化けが起きます。例えば、Shift_JISで保存されたHTMLファイルをブラウザがUTF-8だと認識し、UTF-8で表示し用途した時に、文字化けが発生します。

参照記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?