2
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 2020-10-28

文字コードについて

復習用 エンコード/文字コード/マルチバイト文字 についてのノート

  • UTF-8はエンコード形式
  • Unicode(UCS2/4)は文字コード
    • UCS2/4をエンコードする方式のこと

エンコードと文字コードはちがうの?

  • 文字コードはサイズ固定

    • UCS2:16bit
    • UCS4:32bit
  • エンコード方式がUTF-8

    • 1~6byte可変長
    • たとえば日本語ではE3で始まることが多いので3byte (E3 xx xxで日本語1文字)
    • UTF16/32もあるがあまり使われてない
    • UTF8が可変長で1~6byteなのがポイント
  • US-ASCII:英数字などの7bit文字

    • 1byteではないことがポイント
    • 0000 0000
    • 0111 1111
    • 最上位ビットが1ならダブルバイト/マルチバイト文字(=US-ASCII(Alpha numeric)文字ではない)
      • 2バイト文字とは、文字コードのうち、1文字を2バイトで表現する文字の総称
      • 上位ビットが1ならダブルバイト文字/マルチバイト文字で2~6バイトの可変長で表現される
    • US-ASCIIであろうが日本語だろうが全部の文字がUTF8でかける
    • しかも変更することなくUS-ASCIIも書ける
    • UTF8はUS-ASCIIと完全な互換性がありかつ全部の文字をかける
    • とりあえずUTF8とかいとけばいい!🙆‍♀️

ダブルバイト文字とマルチバイト文字は?

  • ダブルバイト文字(DBCS):Unicodeという文字キャラクターコードが主流になる前に存在
    • Windows/AIX,Shift_JIS
    • HP-UX(Linux系)/EUC
    • IBMメインフレーム/EBCIDIC
    • これらOSに紐づく文字コードは大体2バイト文字という
  • Unicodeできた当初は世界中の文字位は16biitで書けると思われていて、Unicode=16bitであった
    • 中国、日本語などJIS規格で文字が増えて16bitではかけない!
    • →UCS4誕生
  • 文字コードに割り当てるキャラクターコードは32bitまで拡張し、そもそも2バイト文字は無くなった
    • UTF8:1~6バイト
    • UTF16:2バイト
    • UTF32:4バイト
    • →複数バイトとして現在はマルチバイトというのが適切!
2
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
2
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?