文字コードと改行コード

| Topic path: Top / 授業 / C言語基礎 / 文字コードと改行コード

*文字コード [#t04d92e8]

コンピューターの中では、すべてのデータが2進数、つまり0と1で表現されています。

文字を2進数で表す方法を''文字コード''といい、以下のようなものがあります。
-''ASCII''
-''EUC''
-''JIS-2022-JP''
-''Shift-JIS''
-''Unicode (UTF-8)''

日本語(ひらがな、カタカナ、漢字)を使う場合には、同じ文字でも、どの文字コードを使うかによって違う2進数データになります。
逆に、同じ2進数データでも、どの文字コードを使うかによって違う文字になります。

文字を2進数データに変換したときの文字コードと2進数データを文字に変換したときの文字コードが違うと、文字化けが生じます。

UnixやLinuxの日本語環境ではEUCが、WindowsやMac OSの日本語環境ではShift-JISが、日本語の電子メールではJIS-2022-JPが使われていました。
UnixやLinuxの日本語環境ではEUCが、以前のWindowsやMac OSの日本語環境ではShift-JISが、日本語の電子メールではJIS-2022-JPが使われていました。

環境ごとに文字コードが違うのは不便なので、最近はどの環境でも共通してUnicode (UTF-8) を使うという流れになっています。

総合情報センターのLinuxサーバーでは''EUC''が使われていますので、日本語を出力するプログラムを作成するときは、ファイルの''文字コードをEUCにして保存''しなければなりません。
総合情報センターのLinuxサーバーでも''UTF-8''が使われていますので、日本語を出力するプログラムを作成するときは、ファイルの''文字コードをUTF-8にして保存''しなければなりません。


*改行コード [#y7a270b3]

改行を表す制御文字には、以下の二つがあります。
-''CR'': Carriage Return、行の頭に戻る
-''LF'': Line Feed、次の行に進める

[[テレックス>https://ja.wikipedia.org/wiki/テレックス]]という通信型のタイプライターのような装置を制御するための文字なので、行の頭に戻るという操作と、次の行に進めるという動作が別々にできるようになっています。

UnixやLinuxではLFのみ、WindowsではCRとLFの連続した二文字、以前のMac OSではCRのみが改行を表すのに使われていました。

現在は、Unix、Linux、Mac用のOS XではLFのみ、WindowsではCRとLFの連続した二文字が改行を表すのに使われています。
現在は、Unix、Linux、macOSではLFのみ、WindowsではCRとLFの連続した二文字が改行を表すのに使われています。

WindowsのファイルではCRとLFの連続した二文字が改行を表すのに使われますが、LinuxではLFだけで改行とみなされますので、Windows PCで作成したファイルを総合情報センターのLinuxで開くと、行末に制御文字が余分についているように見えることがあります。

多くの場合、これが原因で何か問題が生じるということはありませんが、Windows PCでファイルの''改行コードをLFのみにして保存''しておけば、Linuxで開いたときに行末に制御文字が余分につくことはありません。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS