class: img-right,compact # コンピュータにおける文字の表現とは? <div class=footnote> <small><small> (脚注1) 指定したフォントがない場合、四角い箱いわゆる豆腐が表示されます:-) <br> (脚注2) E8908Cという数字を、 数字としてあつかうべきなのか文字と解釈する必要があるのか? コンピュータには分かりません。 <br> それが、 メールヘッダやHTTPヘッダのContent-Typeにcharset=UTF-8などとヒントを書く必要がある理由です </small></small> </div> ![height400px](../../columns/essentials/characters/images/charcode-handling.png) <small> - コンピュータが理解できるのは**数字だけ** - たとえば「A」と「萌」を表現するには? - 3つ考える必要がある 1. 文字に数字を割り当てる 1. 数字のエンコーディング方式 1. 文字に該当するフォントを表示 - たとえば <small> - 半角アルファベットのA = 65 - 日本語の漢字「萌」は、 Unicode文字一覧表の840C、 UTF-8でエンコードするとE8908C - 65や840Cに対応するフォントを使い画面に表示する <br> - 英語は「IPAゴシック」や「Courier」など - 日本語は「IPA明朝」や「MS明朝」など </small> </small> --- class: compact # [補足] 各OSの文字コード <div class=footnote> <small><small> </small></small> </div> - Windows日本語版(あくまでも"日本語版"の話です) - 歴史的にはMS-DOSの時代に、シフトJIS(Shift-JIS)という方式を使っていた。 <br> おそらく、その後方互換性のため、今でも**デフォルトがシフトJIS**。 - よって、**ユーザ名に日本語をつけるとトラブルだらけになるので禁止** - OS内部の処理はUTF-16 - Windows TerminalほかモダンなアプリのみUTF-8前提 - このように3種類の体系が入り乱れていて、これらが諸悪の根源。ド変態構成 - linux - UTF-8 - とうぜんAWSを使う場合、**AWS側はUTF-8**。 <br> **シフトJISだと思っているWindowsアプリでAWSを使うと文字化け**してしまう - MacOSX - UTF-8