pimientitoの機械学習

「機械学習って何だろう。」から、はじまり、いまだ???の毎日。数学初心者、PG・DBアマチュアのサービス・エンジニアが、どこまで理解できるのか。

【前処理の学習-4】文字コード・改行コードについて

前回「【前処理の学習】データ読込み~事前確認①~」の後半、mac環境のjupyter notebookでデータファイルを読込むと文字化けしてしまうことが分かりました。

pimientito-handson-ml.hatenablog.com

今回はいったんデータ読込みから離れて文字コードや改行コードについて、あらためて調べてみました。

まずは文字コードとは何でしょうか。

文字コード(もじコード)とはコンピュータ上で文字(キャラクタ (コンピュータ))を利用する目的で各文字に割り当てられるバイト表現。もしくは、バイト表現と文字の対応関係(文字コード体系)のことを指して「文字コード」と呼ぶことも多い。

参照元 Wikipedia文字コード

代表的な文字コードだけでも100種類以上存在するそうです。多種多様の目的で開発されている文字コード、それだけ多くなれば問題も多くなるのでしょう。同資料では、このように説明されています。

多様な文字コードの存在は文字コードの互換性問題をひきおこす。文字コードの互換性問題とは、ある文字コードで記録されたデータを別の文字コードに変換しようとするとき、一方で定義されている文字がもう一方では定義されていない(あるいは用途によって2種類の文字に分けられている)という問題である。

参照元 Wikipedia文字コード 概説」



主な文字コードをいくつか挙げます。

  • JIS漢字コード

日本工業規格 漢字などの文字コード

  • Shift-JIS

コンピュータ上で日本語を含む文字列を表現するために用いられる文字コードの一つ。

またMicroSoftAppleでは、各社の拡張文字コードを含めたShift-JISを使用している。

  • ASCII(American Standard Code for Information Interchange)

現代英語や西ヨーロッパ言語で使われるラテン文字を中心とした文字コード

これはコンピュータその他の通信機器において最もよく使われているものである。

世界で使われる全ての文字を共通の文字集合にて利用できるようにしようという考えで作られ、UnixWindowsmacOSJavaなどで利用されている。

UNIX上で使われてきた文字コード

UNIX上で日本語の文字を扱う場合にもっとも多く利用されている文字コード

データ交換方式・ファイル形式として一般的に使われる傾向にある。



続いて改行コードについて調べました。

改行コード(広義)は以下の2種類であり、システム(ソフトウェア)により片方または両方が使用される。

  • キャリッジリターン(英: carriage return、CR、復帰)

  • ラインフィード(英: line feed、LF、狭義の改行)またはニューライン(newline、line break または end-of-line、EOL)

参照元 Wikipedia「改行コード」

また同資料では、以下の問題点について言及しています。

コンピュータでは、同じ文字コードを使用していても、改行コードは異なる場合があるため、異なるシステム間でのデータの際には、改行が正確に反映されない場合がある。



同じ文字コードを使用しているにもかかわらず、改行コードが異なる場合とは、どのような状況なのでしょうか。

残念ながら(幸運にも?)そのような状況に出合ったことが無いため、なかなかイメージができませんでした。



最後に、主なコンピューターOSに絞って、それらが使用している改行コードを記載いたします。

参照元 Wikipedia「改行コード」

以上が、文字コード、改行コードについて調べた内容です。

今回、ほとんど引用ばかりでしたが、何となくうろ覚えだったことを、あらためて掘り起こして良い勉強になりました。

次回から、またハンズ・オンな記事をお送りいたします。

今回は、以上です。

【参考資料】

文字コード - Wikipedia

JIS漢字コード - Wikipedia

Shift_JIS - Wikipedia

ASCII - Wikipedia

Unicode - Wikipedia

Extended Unix Code - Wikipedia

EUC-JP - Wikipedia

UTF-8 - Wikipedia

改行コード - Wikipedia