WindowsOSのシステム文字コード

WindowsOSがシステムとして利用する文字コードを調べていて、一人で悩んでしまったことがあるので、こちらのFAQに記載します。
私が調べたかったのは、Azure 上のWindows Server 2022ですが、全てのWindowsで共通の話です。

結論から言うと、
Windows OS 内部で使用する文字コードは Unicode であり、符号化方式 (エンコーディング) は UTF-16 です。
この仕様は Windows NT (1993 年リリース) から変更されておらず、Windows /Windows Server のバージョンやエディションによる差異もありません。

以上です。

これだけ書くと、とても単純な話なのですが、ネット上で、
「日本語化したWindowsの文字コードはShift_JISである」
と堂々と記載されていることがあり、非常に迷いました。
また、某AIに以下のように質問すると

質問
日本語化したWindowsOSの文字コードはなんですか?

回答
日本語化したWindowsOSでは、一般的にはShift JIS (Shift Japanese Industrial Standards) が使用されています。Shift JISは、日本語の文字セットを表現するために広く使われる文字コードの一つです。

と回答が返ってきます。

上記は質問の仕方があまり良くなく、回答にしても間違いではないのかもしれません。Shift JISも扱えます。
しかし、Windowsの、システムとしての文字コードは Unicode であり、符号化方式 (エンコーディング) は UTF-16(2回目)
というのが正確な情報です。


なお、
Unicode をサポートしないアプリケーションやライブラリを動作させる際に限り、UTF-16からシステム ロケールで設定された文字コードおよび符号化方式への変換処理
が行われるようです。これは、「コマンドプロンプト」などがよい例だと思います。
日本語化したWindows(システムロケールが日本)のコマンドプロンプトはデフォルトではShift-JISでの入出力対応になっています。
このあたりも、誤解を生みやすい部分なのだと思います。
(Windows標準のzip解凍アプリなどもそうなのかな。。。)

しかしながら、
Windows OS 内部で使用する文字コードは Unicode であり、符号化方式 (エンコーディング) は UTF-16 です。(3回目)

いいね (この記事が参考になった人の数:4)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください