文字セットとエンコーディング
目次 |
[編集] 基本文字セット
基本文字セットは、以下の95文字で構成されます。
| コード単位 | 文字 | グリフ |
|---|---|---|
| U+0009 | 水平タブ | |
| U+000B | 垂直タブ | |
| U+000C | フォームフィード (FF) | |
| U+0020 | スペース | |
| U+0021 | 感嘆符 | !
|
| U+0022 | 引用符 | "
|
| U+0023 | 番号記号 | #
|
| U+0025 | パーセント記号 | %
|
| U+0026 | アンパサンド | &
|
| U+0027 | アポストロフィ | '
|
| U+0028 | 左括弧 | (
|
| U+0029 | 右括弧 | )
|
| U+002A | アスタリスク | *
|
| U+002B | プラス記号 | +
|
| U+002C | コンマ | ,
|
| U+002D | ハイフンマイナス | -
|
| U+002E | ピリオド | .
|
| U+002F | スラッシュ | /
|
| U+0030 .. U+0039 | 数字のゼロ .. ナイン | 0 1 2 3 4 5 6 7 8 9
|
| U+003A | コロン | :
|
| U+003B | セミコロン | ;
|
| U+003C | 小なり記号 | <
|
| U+003D | 等号 | =
|
| U+003E | 大なり記号 | >
|
| U+003F | 疑問符 | ?
|
| U+0041 .. U+005A | ラテン大文字 A .. Z | A B C D E F G H I J K L M
|
| U+005B | 左角括弧 | [
|
| U+005C | バックスラッシュ | \
|
| U+005D | 右角括弧 | ]
|
| U+005E | サーカムフレックスアクセント | ^
|
| U+005F | 下線 | _
|
| U+0061 .. U+007A | ラテン小文字 a .. z | a b c d e f g h i j k l m
|
| U+007B | 左波括弧 | {
|
| U+007C | 縦線 | |
|
| U+007D | 右波括弧 | }
|
| U+007E | チルダ | ~
|
C++とは異なり、U+000A LINE FEED (LF) 文字は基本文字セットに含まれていません。代わりに、ソースファイルの各行の終端を示す方法があり、ドキュメントではそのような行末インジケータを単一の改行文字として扱います。
基本文字セットは、基本ソース文字セットとも呼ばれます。
[編集] 基本実行文字セット
基本実行文字セットには、基本文字セットのすべてのメンバーに加えて、以下の文字が含まれます。
| コード単位 | 文字 |
|---|---|
| U+0000 | ヌル |
| U+0007 | ベル |
| U+0008 | バックスペース |
| U+000A | ラインフィード (LF) |
| U+000D | キャリッジリターン (CR) |
各基本実行文字セットについて、メンバーの値は非負であり、互いに異なります。ソースと実行の両方の基本文字セットにおいて、10進数の数字のリストの0の後の各文字の値は、前の値より1大きい値でなければなりません。U+0000 NULL文字の値は0です。
基本実行文字セットの各メンバーの表現は、バイトに収まります。
C++では、基本実行文字セットは基本リテラル文字セットおよび基本実行ワイド文字セットとも呼ばれます。
[編集] リテラルエンコーディング
リテラルエンコーディングは、実行文字セットの文字を、エンコーディングプレフィックスなしの文字定数または文字列リテラルの値にマッピングする実装定義のマッピングです。基本実行文字セットのすべての値から実装定義のエンコーディングへのマッピングをサポートします。マルチバイト文字シーケンスを含む場合があります。
|
以下の文字は基本実行文字セットには含まれていませんが、通常の文字定数または通常の文字列リテラルで単一バイトとしてエンコードされる必要があります。
|
(C23以降) |
ワイドリテラルエンコーディングは、実行文字セットの文字を、Lプレフィックス付きの文字定数または文字列リテラルの値にマッピングする実装定義のマッピングです。基本実行文字セットのすべての値から実装定義のエンコーディングへのマッピングをサポートします。実装が__STDC_MB_MIGHT_NEQ_WC__を定義しない場合、マッピングは基本実行文字セットの値すべてに対して、リテラルエンコーディングと同じ値になります。1つ以上の値が、拡張実行文字セットの1つ以上の値にマッピングされる場合があります。
|
UTF-8エンコーディングは、実行文字セットの文字を 実装定義のエンコーディング(C23まで)UTF-16エンコーディング(C23以降)は、実行文字セットの文字を 実装定義のエンコーディング(C23まで)UTF-32エンコーディング(C23以降)は、実行文字セットの文字を |
(C11 以降) |
[編集] 関連項目
| ASCIIチャート | |
| C++ ドキュメント (文字セットとエンコーディング)
|