FC2ブログ

Ctrl + Z

人生をUndoしよう

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
01


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UnicodeとUTF-16&UTF-8 (1)

先日、Visual C++で、UNICODE設定にし、STLのwstringに設定した文字列のバイト数を取得する必要があり、その際、Unicodeに関して調べてみたので、内容を忘れないよう纏めてみました。



Unicodeとは

一言で言うと、「世界中の全ての文字が使える文字コード」です。

Unicodeが出来る前は、各言語ごと、文字コードが存在しました。
日本語だと、「Shift-JIS」や「EUC」など、幾つもの文字コードが存在します。
文字コードが異なっていると文字化けの原因になりますし、1つの文章に複数の言語を入れたりすることも出来ません。色々、不便な状態でした。

何年もインターネットをやってる方は、Webサイトが文字化けする、といった体験があると思います。
これは、文字コードの不一致が原因です。


そこで、頭のいい人たちが集まって「世界中の文字がすべて入った、文字コードを作り、それを世界標準にしよう」と決めました。これが、Unicodeの始まりです。


もともとは、16bit(2byte)あれば、全世界の文字が入れれるだろう、と考えられていましたが、文字コードを作っていくと、足りないことが判明し、Unicode2.0では、21bitの文字集合となりました。
U-0000~U-10FFFFまでの範囲で、文字コードが設定されています。


U-0000~U-FFFFまでの16bitを基本多言語面(BMP)と言い、一般的に使われる文字は、全てこの中に格納されています。
U-100000~U-10FFFFまでの範囲は拡張領域と言い、あまり使われない部分がここに含まれます。


尚、Unicodeのコードを表すときは、U-から始め、16進数で表記します。16bitまでは、U-FFFFまでの4文字表記とし、それ以上は、5文字、6文字表記となります。まあ、U-から始まっていたら、Unicodeだと思って間違いありません。



Unicodeと漢字

Unicodeで、最も大きく場所をとっているのが漢字です。
日本人なら誰もが使う事のできる漢字ですが、どれぐらいの国で漢字が使われているのでしょうか?

実は、「日本」「中国」「台湾」ぐらいなんです。昔は「朝鮮(韓国、北朝鮮)」と「ベトナム」も漢字圏でしたが、朝鮮はハングルを使用し、ベトナムはベトナム語(クオック・グー(ラテン文字+補助記号))が主に使用されています。ただ、ちょっとは、漢字文化が残っているようです。


これらの国が使う漢字ですが、国別に漢字を登録すると、16bitで足りなくなってしまうことは、Unicode制定前から判っていたため、CJK統合漢字(Chinese-Japanese-Korean)というものが策定されました。後に、ベトナムの漢字も追加されました。


CJK統合漢字というのは、「字の由来が同じ」で「字形が同じ、または似ているもの」は、同じだろう、ということで統合したものです。
この辺り、色々問題がありますので、気になる方は、
 Wikipedia CJK統合漢字http://ja.wikipedia.org/wiki/CJK%E7%B5%B1%E5%90%88%E6%BC%A2%E5%AD%97
を参照して下さい。


CJK統合漢字は、基本多言語面(BMP)のU-3400~U-9FFFまでの、6BFF(27647)文字分の領域が割り当てられています。よく使われる基本的な部分はBMPに入れられ、マニアックな漢字は、拡張領域に入れられています。


そもそも、漢字はどれぐらいの量があるのでしょうか。
Wikipediaによると、10万字ははるかに超える量があるようです。
日本においては、常用漢字というものが示されており、日常で書き表すために必要な漢字として選ばれたものが
2136字(2010年11月30日)あります。思ったよりも、少ないですね。


つまるところ、よく使う文字は、基本多言語面(BMP)の16bitに十分収まっており、あまり使われていない文字は、拡張領域に含まれるため、「漢字検定でもやらない限りBMPだけで十分」という点は、重要なので覚えておいてください。



次回に続く












スポンサーサイト


Comments

Leave a Comment


Body

プロフィール

Green

Author:Green
思ったこと、興味があることなどを適当に。
プログラミングとゲームの話が多いかも。

主に使ってるプログラミング言語
・C++
・C#
・Visual Basic
・Python

email address

最新コメント
最新トラックバック
月別アーカイブ
 
 
 
 
 
リンク (ゲーム)
 
 
Amazon
ゲーム

[2012/05/24] ドラゴンズドグマ(数量限定特典『バイオハザード6』体験版用DLコード同梱)  
  [2012/07/05] 世界樹の迷宮IV 伝承の巨神 (特典 ブックレット付きサウンドトラックCD付き)  
  [2012/07/19] ルーンファクトリー4 (特典 こっそり聴きたい添い寝CD(特製ヘッドフォン付き)付き)  
  [2012/08/02] ドラゴンクエストX 目覚めし五つの種族 オンライン(通常版)
[2012/08/02] ドラゴンクエストX 目覚めし五つの種族 オンライン (Wii USBメモリー16GB同梱版)  
  [2012/08/30] 初音ミク -Project DIVA- f(予約特典:デザイン保護フィルム(PlayStation(R)Vita専用)付き)  
 



DVD / Blu-ray

[2012/07/18] 映画けいおん! (Blu-ray 初回限定版)

[2012/08/29] [初音ミク]ミクの日大感謝祭 2DaysコンプリートBOX(初回受注生産限定盤) [Blu-ray]
 
 
Amazon
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。