文字コードにすごいうとい者なのですが、見慣れない
_tmain
なんていうものを見てしまって、少し調べてみました。
そうすると、なんだか2バイトでは世界中の文字はもとより、感じすらすべて表すことは不可能で、今のunicode主流は3バイトで表現するのだとか。
で、私の知識の中では、C言語ではwchar_tでunicodeを表現しているらしいのですが、それじゃあ足りないわけで、ちゃんとした3バイト文字を表現するための公式的?な記述方法は(WIN32 APIで)あるのでしょうか。(その他MFCなどでもあれば。)
本人こういう事柄について、今まで考えたこともなく、よくわからないまま質問しているので、どうぞ怒らないでください。
よろしくおねがいします。
No.2ベストアンサー
- 回答日時:
> wchar_tは16bitで固定なので、同じ文字コードについて、十分なサイズをもっている場合とそうでない場合なんてあるのでしょうか?
wchar_t型は8ビット以上で、符号の有無も処理系定義です。また、サイズ的に問題がなくても、どんな文字コードが使われるかも処理系定義です。
> あと、現段階で、2バイト(wchar_t)のみで世界中のすべての文字を表すことは可能なのでしょうか?
サロゲートを使うしかないと思います。
そうだったんですか、wchar_tは8bit以上という定義だったとは・・知りませんでした。(wだからてっきり・・)
半角を1バイト、全角を2バイトで使うというのを、今度はwchar_tとその倍サイズで表現するというものがサロゲートだったんですね。
名前はじめて知りました。
参考になりました。ありがとうございます。
No.1
- 回答日時:
> 今のunicode主流は3バイトで表現するのだとか。
主流という意味では16ビットだと思いますが...
> C言語ではwchar_tでunicodeを表現しているらしいのですが
wchar_t型は、Unicodeを表現するためのものとは限りません。ワイド文字がどんな文字コードを使うかは処理系定義です。
ところで、Win32 APIはOSの取り決めですので、C処理系の取り決めは原則として別のものです。Windows上の処理系でも、wchar_t型でシフトJISを扱うものも実在しますので。
> ちゃんとした3バイト文字を表現するための公式的?な記述方法は(WIN32 APIで)あるのでしょうか。
C言語の場合、wchar_t型でISO 10646のすべての文字を表現できるサイズを持っているのであれば、__STDC_ISO_10646__マクロがあらかじめ定義されます(ただし、C99以降)。ここでも、Win32 APIかどうかは関係ありません。
>C言語の場合、wchar_t型でISO 10646のすべての文字を表現できるサイズを持っているのであれば、__STDC_ISO_10646__マクロがあらかじめ定義されます
wchar_tは16bitで固定なので、同じ文字コードについて、十分なサイズをもっている場合とそうでない場合なんてあるのでしょうか?
あと、現段階で、2バイト(wchar_t)のみで世界中のすべての文字を表すことは可能なのでしょうか?
今回の私のこの発言内容が、低レベルすぎると思った場合は、是非教えてください。
これ以上迷惑のかからない手段を見つけて勉強しますので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# VisualStudioのソースコードで漢字を使いたい 4 2022/05/21 10:16
- その他(人文学) 特殊?な文字の入力 4 2022/10/23 09:08
- 邦画 映画『四月物語』の題名は旧約聖書:民族の系譜を表現するとともに露国ウクライナ侵攻の結末を暗示してる? 1 2023/05/03 06:05
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- 哲学 日本語は論理表現にふさわしくないか の問題です 4 2022/06/25 03:56
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
- その他(メールソフト・メールサービス) 【GAS】GMail自動送信 2 2022/09/04 06:19
- 日本語 日本語 読書 勉強 漢字ちょう(日本の中学生まで) 現代文単語(高校生の教科書) というのを私は、や 3 2022/09/11 18:51
- 一眼レフカメラ 表現方法 2 2022/11/16 17:57
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
ビットスワップとバイトスワッ...
-
VBでShift_JISへurlエンコード...
-
ピクセル,dpiから容量(バイト...
-
エクセルシート名の制限を変更...
-
GetWindowTextでアドレスバーか...
-
ReadProcessMemoryの読み込みバ...
-
機種依存文字をチェックしたい。
-
バイト配列 抜き出す
-
「1TB」のHDDに日本語は何字入...
-
全角半角を調べるライブラリ関...
-
バイナリファイルの読込み(小...
-
2byte文字の判定
-
VBAでShift-JISのURLエンコード
-
:(コロン)のKeyCode
-
バイナリとBCDコード
-
64bit対応
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
char str[256]の256の意味は?
-
バイナリとBCDコード
-
「1TB」のHDDに日本語は何字入...
-
Javaで日本語1文字のバイト数
-
バイト列とバイナリ列の違いが...
-
SQLで1バイト、2バイト混在...
-
ピクセル,dpiから容量(バイト...
-
C++ Builderで文字列をバイトに...
-
64bit対応
-
ワイド文字のバイト数が取得で...
-
UCS-2の一覧表が欲しい
-
3バイト文字(UTF-8)をprintfで...
-
VBAでShift-JISのURLエンコード
-
機種依存文字をチェックしたい。
-
ビットスワップとバイトスワッ...
-
VBSでテキストファイルの文字列...
おすすめ情報