Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンピュータによる文字の表現

 コンピュータによる文字の表現

2023年度更新

Naoki Kato
PRO

July 17, 2023
Tweet

More Decks by Naoki Kato

Other Decks in Education

Transcript

  1. by Naoki Kato
    ©Naoki Kato
    ©Naoki Kato
    文字の表現
    Computer
    Science, Engineering and Literacy

    View Slide

  2. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    コンピュータのマルチメディア化
    情報をビット列で表現すると
    コンピュータに入力(記憶)することができる
    なんらかの処理をすることができる
    コンピュータにおける情報の表現
    ⽂字や絵図 映像
    ⾳楽

    View Slide

  3. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    文字をビット列で表現する
    文字に番号をつけ,
    その番号を二進記数法で表す
    文字の表現
    10110110(2)
    182(10)
    k

    View Slide

  4. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    文字情報を伝達
    なんらかの方法で文字をビット列で表現
    (二進記数法による数)
    文字コード
    文字の表現








    文字セット
    4fh 21h
    32h 43h
    5bh 45h
    符号化方式
    図1 文字コードの定義要素
    コードポイント

    View Slide

  5. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    フォント
    見た目の表現は文字コードには含まれない
    異字体など,文字コードで見た目が定義されているものも
    文字の表現
    MS明
    明朝
    朝 MSゴ
    ゴシ
    シッ
    ック
    ク HG丸
    丸ゴ
    ゴシ
    シッ
    ック
    ク 英
    英角
    角ポ
    ポッ
    ップ
    プ体

    フォント フォント フォント フォント

    新字
    字体
    体 両 旧
    旧字
    字体
    体 兩
    おまけ
    文字装飾(太字や斜体)は使わない!フォントで切り替え!

    View Slide

  6. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    ASCII
    7ビットで表現=128種
    ‘A’のコードポイントは 41h
    文字の表現
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
    1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
    2 SPC ! " # $ % & ' ( ) * + , - . /
    3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
    4 @ A B C D E F G H I J K L M N O
    5 P Q R S T U V W X Y Z [ \ ] ^ _
    6 ‘ a b c d e f g h i j k l m n o
    7 p q r s t u v w x y z { | } ~ DEL

    View Slide

  7. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    ASCII
    7ビットで表現=128種
    ‘A’のコードポイントは 41h
    文字の表現
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
    1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
    2 SPC ! " # $ % & ' ( ) * + , - . /
    3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
    4 @ A B C D E F G H I J K L M N O
    5 P Q R S T U V W X Y Z [ \ ] ^ _
    6 ‘ a b c d e f g h i j k l m n o
    7 p q r s t u v w x y z { | } ~ DEL
    記号と英数字

    View Slide

  8. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    ASCII制御文字
    14h 15h 16h 0Dh 17h 18h 19h
    abc
    def
    文字の表現

    View Slide

  9. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    ASCIIコードの構造
    文字の表現
    記号と英数字
    0 0
    01〜11
    制御⽂字
    記号と英数字

    View Slide

  10. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    国際規格 ISO646
    国ごとに決められるコードポイントを用意
    文字の表現
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
    1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
    2 SPC ! " # $ % & ' ( ) * + , - . /
    3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
    4 @ A B C D E F G H I J K L M N O
    5 P Q R S T U V W X Y Z [ \ ] ^ _
    6 ‘ a b c d e f g h i j k l m n o
    7 p q r s t u v w x y z { | } ~ DEL
    記号と英数字

    View Slide

  11. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JIS X 0201
    7ビット版(JIS7)
    JISローマ字
    JISカナ
    この二つをSI(0Fh),SO(0Eh)で切り替える
    (例)41h 42h 0Fh 41h 42h 0Eh 41h
    A B チ ツ A
    文字の表現
    記号と英数字
    カタカナ

    View Slide

  12. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JISカナ
    文字の表現
    カタカナ
    0 0
    01〜10
    1 1
    カタカナ
    制御⽂字
    ASCIIの制御⽂字
    部分と同じ

    View Slide

  13. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JISカナ
    文字の表現
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
    1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
    2 SPC 。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ
    3 ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ
    4 タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ
    5 ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜
    6
    7 DEL

    View Slide

  14. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JIS X 0201
    8ビット版(JIS8)
    文字の表現


    JISローマ字と同じ表現

    1 カタカナ(A0h~CF)
    0 0
    1
    01〜10
    1 1
    1
    カタカナ
    JISローマ字
    の⽂字セット
    ASCIIの制御⽂字
    部分と同じ表現

    View Slide

  15. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    文字の表現
    0 1 2 3 4 5 6 7 8 9 A B C D E F
    0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
    1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
    2 SPC ! " # $ % & ' ( ) * + , - . /
    3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
    4 @ A B C D E F G H I J K L M N O
    5 P Q R S T U V W X Y Z [ \ ] ^ _
    6 ‘ a b c d e f g h i j k l m n o
    7 p q r s t u v w x y z { | } ~ DEL
    8
    9
    A 。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ
    B ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ
    C タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ
    D ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゛ ゜
    E
    F

    View Slide

  16. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    漢字文字セット
    JIS X 0208
    非漢字453字,第一水準2965字,第二水準3461字
    JIS X 0213
    JIS X 0208
    第三水準8797字,第四水準2436字
    文字の表現

    View Slide

  17. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JISコード
    ISO2022準拠 ISO2022-JP
    ASCIIを併用
    7ビット×2で表現
    制御文字部分を除いた21h~7ehを使用
    94×94=8836種
    文字の表現
    01~11
    ×
    01~11
    7E
    21
    21
    7E
    !
    "
    #
    $

    2バイト目

    View Slide

  18. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    JISコード
    “加” は 32h 43h
    ASCIIでは “2C”
    エスケープシーケンスの利用
    文字の表現
    a b c * $ B あ い う * ( B a b c
    61 62 63 1B 24 42 28 65 28 66 28 67 1B 28 42 61 62 63

    View Slide

  19. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    Shift-JISコード
    8ビット×2で表現
    JIS8と共存+エスケープシーケンスをなくす
    文字の表現
    81
    9F
    E0
    EF
    JIS8
    40 7E
    80 9E
    9F FC
    21
    21
    7E
    5E
    5F
    !
    "
    #
    $

    2バイト目

    View Slide

  20. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    シフトJISコード
    文字の表現

    01
    10
    1
    01
    10
    0100〜
    000
    001
    1
    JIS漢字
    カタカナ
    JIS8と同じ
    JISローマ字
    の⽂字セット
    110
    1
    JIS漢字
    01
    10
    0100〜

    View Slide

  21. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    EUCコード
    8ビット×1~3で表現
    文字の表現
    1バイト目 2バイト目 3バイト目
    21h~7Eh ASCII
    A0h~FFh A0h~FFh JIS X 0208
    8Eh A0h~FFh JISカタカナ
    8Fh A0h~FFh A0h~FFh JIS X 0213

    View Slide

  22. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    EUC-JP
    文字の表現

    0 1110
    00
    1
    01
    10
    1
    01
    10
    1
    01
    10
    1
    0 1111
    00
    1
    01
    10
    1
    01
    10
    1
    JIS漢字
    補助漢字
    カタカナ
    JIS8と同じ
    JISローマ字
    の⽂字セット

    View Slide

  23. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    Unicode,UCS
    世界中のすべての文字を共通の文字集合で!
    当初は16ビット =国際規格 UCS-2 の範囲と同一
    Unicode2.0以降は21ビット
    UCS4:Unicodeをベースに31ビットに拡張
    符号化方式
    UTF-8 8ビット×1~6,ASCIIと互換
    UTF-16 16ビット×1~4
    UTF-32 32ビット×1(UCS4用)
    Unicodeの符号化 Unicode Transformation Format
    UCSの符号化 UCS Transformation Format
    文字の表現

    View Slide

  24. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    CJK統合漢字
    Unicodeでの用意された漢字枠(20902字)
    似た字体をまとめて
    中国 GB 2312(7,445字)
    台湾のCNS1,2,14面(13,735字+6,148字+171字)
    日本のJIS X 0208(6,879字)とJIS X 0212(6,067字)
    韓国のKS C 5601(8,226字)
    Unicode3.0で6,582字追加
    Unicode3.1で42,711字追加
    文字の表現

    View Slide

  25. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    中国語の文字の表現
    中国(簡体字中国語)
    GB2312(国家規格:Unicodeが対象とした)
    GB18030(2001年より利用が義務化)
    台湾・香港(繁体字中国語)
    BIG5(最も一般的,5大メーカが策定)
    CNS 11643(国家規格:Unicodeが対象とした)
    文字の表現

    View Slide

  26. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    CJK統合漢字の問題点
    似た文字をひとまとめに
    フォントの変更で切り替え可能
    ( MS明朝だと日本語の字体)
    文字の表現
    Unicod 骨
    骨 与

    日本(JIS) 骨 与
    繁体字中国語(BIG5) 骨 与
    簡体字中国語(GB) 骨 与
    MS明朝
    MingLIU
    SimSun

    View Slide

  27. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    異字体の問題点
    コードセパレート問題
    似た文字(新字体と旧字体など)が異なったコード
    検索にかからない
    文字化け 內
    內(Uni)→内
    内(JIS) →
    →内
    内(Uni)
    文字の表現

    新字
    字体

    4E3E
    両 旧
    旧字
    字体

    5140

    GB BIG5 JIS Unicode
    內 有
    有 5167

    内 有
    有 有
    有 有
    有 5185

    View Slide

  28. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    半角と全角
    全角と半角はまったく異なる文字
    “1”は全角 コードポイントは0x2331
    “1 ”は半角 コードポイントは0x31
    半角でなければならないところは多い
    メールアドレス,URL
    ファイル名の拡張子(txt, jpg, pdf など)
    文字の表現

    View Slide

  29. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    改行コード
    OSによって改行コードは異なる
    テキストファイルの交換時には注意
    変換ツールなどを利用
    文字(文章)の表現
    MS-Windows CR LF
    Mac CR
    UNIX LF

    View Slide

  30. by Naoki Kato
    © Naoki Kato
    © Naoki Kato

    演習

    View Slide

  31. by Naoki Kato
    © Naoki Kato
    © Naoki Kato
    文字コードの違い
    テキストファイルを作る
    Shift-JISとUTF-8(without BOM)で保存
    バイナリエディタで違いを確認
    CSVファイル(Shift-JIS)をDL
    UTF-8(without BOM), UTF-8(without
    BOM)で保存
    3種類をエクセル/Googleスプレッドシートで開く
    Googleスプレッドシートで保存する
    エクセルで開く
    文字(文章)の表現

    View Slide

  32. by Naoki Kato
    © Naoki Kato
    © Naoki Kato

    おし
    しま
    まい

    文字の表現

    View Slide