lecture:prog2:vscode_utf8

Unicodeは、もっとも標準的に利用されている文字コード体系です。 このUnicodeの表現形式のうち、よく使われるものの一つがUTF-8です。 が、ややこしいのでここではUTF-8を単に「文字コード」と呼びます。

Linux や macOS では、標準の文字コードとしてこの UTF-8 が利用されており、日本語を利用する際もあまり文字コードを意識することが少なくなりました。 しかし、Windows などでは、伝統的に日本語文字コードとして、Shift JISと呼ばれる文字コードが利用されてきました。 このため、Windows 上で Shift JIS を文字コードとして利用しているファイルを扱う際に、一般的に広く利用されるようになってきた UTF-8 との間で文字化け(下記参照)が生じることがあります。

Visual Studio Code では、扱っているファイルの文字コードを自由に設定することができます。画面下部には現在編集中のファイルの文字コードが表示されています(Shift JIS)。 この文字コード表示部分をクリックすると文字コードの選択画面が表示されますので、ここで新たに設定する文字コード(UTF-8)を選択して下さい。

WSLやmacOS上のCコンパイラや、Python3、Sharif-Judge などではソースファイルの文字コードとして UTF-8 を採用しています。 これらを利用する場合は、必ず UTF-8 を用いてソースファイルを作成して下さい。

文字コードと文字化け

計算機では、すべてのデータ(画像データや音声データも!)を数値として扱います。いま、みなさんが読んでいるこの日本語文字も計算機内部では数値として扱われています。 これらの文字(の見た目の形)と数値の対応付けが、文字コードと呼ばれているものです。

例えば、もっともよく利用されている英数字を表現するためのASCIIコードでは、アルファベット大文字 'A' は、整数値 65 に対応付けられています。 逆にいうと計算機が数値65を、「整数値」として扱えば整数の65、「ASCII文字」として扱えば大文字 'A' として表現されることになります。

これらの「数値」と「文字の形」を対応付ける表(文字コード)はものすごく沢山の種類あります。また、それぞれの文字コードでは、同じ数値が表す文字の多くは異なったものとなります。 たとえば、数値 65 は、ASCIIコードで表現すれば 'A' ですが、別の文字コードで表現するとまた違った別の文字としてディスプレイに表示されるかもしれません。

このように、文字を表現するために、ある計算機やファイルがもつ(数値)データを、そのデータ作成時に想定された文字コードとは別の異なった文字コードで表示させると、意図した文字列が表示されないことになります。これを「文字化け」と呼びます。ちなみに日本語以外でも、こういった文字コード依存の表現のくずれを「Mojibake」と呼んでいます。ひらがなや漢字など、欧米と比較して多くの字形をもつ日本では、各研究機関やメーカーなどがそれぞれ独自に開発した複数の日本語文字コードが利用されていたため、日本ではとくに「文字化け」が頻繁に発生していたという経緯があります。

  • lecture/prog2/vscode_utf8.txt
  • 最終更新: 2020/10/02 02:46
  • by sano