ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

chcpコマンドは何の略なのか

"CHange CodePage" の略らしいです。

ターミナルでchcp /?と打つと、

>chcp /?
Displays or sets the active code page number.

CHCP [nnn]

  nnn   Specifies a code page number.

Type CHCP without a parameter to display the active code page number.

Specifies a code page numberと書いてあるので、たしかにcode pageの略で間違いなさそうです。ところでcode pageってなんでしょう。

Wikipediaによれば

コードページとは、特定の符号化文字集合を指定するための数字、またはその数字で指定された符号化文字集合、あるいはそのような方法で符号化文字集合を指定するためのシステムのことである。cpと表示されることもある。それぞれの符号化文字集合は「コードページ○○(○○は2桁から5桁の数字)」という形で管理される。

「符号化文字集合」とあるので、文字コード(charset)のイメージでよいのでしょうか。

そして、

コードページという用語は、システムベンダ各社が管理している符号化文字集合を指す時にしか用いられず、ISO等の公的な規格の文字集合を「コードページ○○」などということはない。IBMおよび、マイクロソフトは各自、コードページを定めて管理している。マイクロソフトのコードページ群はMS-DOSWindowsなどで利用されている。IBMのコードページはSystem iやDB2等の文字データ表現体系(CDRA: "Character Data Representation Architecture")をサポートするIBMシステムで利用されている。

とあるので、文字コードをコードページと言い換えてベンダ各社が勝手に定義している…という理解でいいのかな。

最後によく使うchcpコマンド。

# 現在のcode pageを確認する
> chcp
Active code page: 932
# UTF-8に変更する
> chcp 65001
# SJISに変更する
> chcp 932