Out of Memory

本ブログは更新を停止しました。Aerieをよろしくお願いいたします。

目次

Blog 利用状況

ニュース

2009年3月31日
更新を停止しました。引き続きAerieを御愛顧くださいませ。
2009年2月3日
原則としてコメント受付を停止しました。コメントはAerieまでお願いいたします。
詳細は2月3日のエントリをご覧ください。
2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

αετο? / aetos / あえとす

シャノン? 誰それ。

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

書庫

日記カテゴリ

MBCSって何だろう?

MBCS。Multi Byte Character Setの略だ。
読んで字のごとく、1つの文字を複数バイトで表すキャラクタセットのこと。

ちょっと待て、キャラクタセット?
キャラクタセットって「文字集合」だろう。文字集合って、符号化方式とは別だよな。
まぁ、両者を一緒に規定する「符号化文字集合」ってのもあるみたいだけど(今はじめて知った)。

簡単に違いを挙げておこう。
たとえば、「ひらがな」はひらがなの集合だから文字集合だ。
しかし、ひらがなの1文字を何バイトで表すかということを、「ひらがな」は規定しない。
これを規定するのは、符号化方式、つまりISO-2022-JPだったりShift-JISだったりUTF-8だったり。
Unicodeについて言えば、UCS-2とかUCS-4の「CS」はCharacter Setの略だから文字集合(UCSは「Universal multi-octet coded Character Set」の略なので符号化文字集合)。
UTF-8とかUTF-16ってのが符号化方式だ。

さて、先にも述べたように、MBCS(あるいは、より限定してDBCS)というのがある。
キャラクタセットがバイト数を規定しようとしている時点でおかしいのだが、ここではMBCSは「1文字を複数バイトで表す符号化方式」と解釈しよう。文字集合の全てが符号化文字集合ではないのでね。
ここではさらに「バイト」の定義にも言及しなければならない。

「1バイト」とは何ビットのことか? 8ビット? いや違う。
1バイトとは「処理場都合のいいビット数」と言ってよく、事実、1バイトが6ビットとか7ビットのマシンもあった。
ちなみに、正確に8ビットを表現したいときは「1オクテット」と言う。

では、UTF-16はどうだろう?
サロゲートペアの問題はあるとは言え、基本的には一律1文字16ビットの符号化方法である。
ということは、この場合は「1バイト=16ビット」と言ってよいのではないだろうか。
MBCSの対義語はSBCS(Single Byte Character Set)だが、だとすると、UTF-16はSBCSか?

Win32 APIには、MBCSとワイド文字との変換を行うWideCharToMultiByte、MultiByteToWideCharという2つの関数がある。
ここで、MBCS側のコードページを指定する引数に、UTF-7とUTF-8を指定することが可能だ。
UTF-7やUTF-8はUTF-16とは違い、1文字に割り当てられたビット数はまちまちなので、これらはMBCSと呼んでいいだろう。
これらの関数は、UTF-16をMBCSとは扱わない。

ここではじめて出てきた「ワイド文字」という言葉についても、一応言及しておこう。
Windowsにおいては、「ワイド文字」とはUTF-16で表された文字のことである。
ただし、例えばC言語の規格書では、必ずしもそうとは規定されていない(Cの規格書は、とかく「処理系定義」が多い…)。
C言語における「ワイド文字型」の定義は、大雑把に言えば「処理系がサポートする全ての文字を区別できるコード範囲を保持できる整数型」である(正確な定義は規格書を当たっていただきたい)。
よって、例えばASCIIコードしかサポートしないコンパイラであれば、ワイド文字=ASCII文字でも構わない。
なお、Visual C++では、Windows同様、ワイド文字=UTF-16である。

MBCSというものの定義を、どこかが厳密に定めているのかどうかは知らない。個人的には慣用的な言葉ではないかと思う。
だが、こうして追い求めてみると、なかなか面白いかも知れない。

投稿日時 : 2007年1月18日 17:51

Feedback

# re: MBCSって何だろう? 2007/01/18 17:53 シャノン

ちなみにWindowsや.NET Framework上においては、1バイト=8ビットであることは言うまでもない。

# re: MBCSって何だろう? 2007/01/18 21:04 じった

旧掲示板が消えてしまったので、助かります

# Pretty! This has been an extremely wonderful post. Thanks for providing these details. 2019/05/02 21:33 Pretty! This has been an extremely wonderful post.

Pretty! This has been an extremely wonderful post. Thanks for providing these details.

# Terrific work! This is the kind of information that should be shared across the net. Shame on the search engines for no longer positioning this post higher! Come on over and talk over with my site . Thanks =) 2019/08/01 2:44 Terrific work! This is the kind of information tha

Terrific work! This is the kind of information that should be
shared across the net. Shame on the search engines for no longer positioning this post
higher! Come on over and talk over with my site .
Thanks =)

# Terrific work! This is the kind of information that should be shared across the net. Shame on the search engines for no longer positioning this post higher! Come on over and talk over with my site . Thanks =) 2019/08/01 2:45 Terrific work! This is the kind of information tha

Terrific work! This is the kind of information that should be
shared across the net. Shame on the search engines for no longer positioning this post
higher! Come on over and talk over with my site .
Thanks =)

# Terrific work! This is the kind of information that should be shared across the net. Shame on the search engines for no longer positioning this post higher! Come on over and talk over with my site . Thanks =) 2019/08/01 2:46 Terrific work! This is the kind of information tha

Terrific work! This is the kind of information that should be
shared across the net. Shame on the search engines for no longer positioning this post
higher! Come on over and talk over with my site .
Thanks =)

# Terrific work! This is the kind of information that should be shared across the net. Shame on the search engines for no longer positioning this post higher! Come on over and talk over with my site . Thanks =) 2019/08/01 2:47 Terrific work! This is the kind of information tha

Terrific work! This is the kind of information that should be
shared across the net. Shame on the search engines for no longer positioning this post
higher! Come on over and talk over with my site .
Thanks =)

# Illikebuisse rozmt 2021/07/04 10:32 pharmacepticacom

erectile home remedy https://pharmaceptica.com/

# re: MBCS??????? 2021/07/06 2:11 plaquenil sulfate 200 mg

chloroquinine https://chloroquineorigin.com/# hcq drug

# re: MBCS??????? 2021/07/23 9:32 side effects of hydroxychlor 200 mg

chloroquine drug class https://chloroquineorigin.com/# risks of hydroxychloroquine

# qxlcgdwfejky 2021/12/01 5:07 dwedaystmw

hydroxychloroquine zinc https://aralenquinesen.com/

# qpwjhgpnalme 2022/05/09 7:22 gaxqds

dosage for hydroxychloroquine https://keys-chloroquinehydro.com/

# zqseuvvcapao 2022/05/12 22:35 grvjqh

when was hydroxychloroquine first used https://keys-chloroquineclinique.com/

# gqpujmbqgoyq 2022/05/20 15:18 ydfcdoxb

https://erythromycin1m.com/# erythromycin ointment eye

タイトル
名前
Url
コメント