回答編集履歴

1

文字コードと文字コード体系を分けるよう修正

2018/04/25 07:40

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -2,9 +2,23 @@
2
2
 
3
3
 
4
4
 
5
- 同じものですよ。
5
+ 「文字コード」か「文字コード体系」か変わりまが、
6
6
 
7
- 文字コードいう規格が沢山あって、そ文字コードの1つの規格がユニコードなのです。
7
+ 文字コード体系との比較ら同じものです
8
+
9
+
10
+
11
+ もっと正確に言えば[文字コード体系](https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89)の規格は沢山あり、ユニコードは文字コードの実装の一つです。
12
+
13
+
14
+
15
+ [ASCII](https://ja.wikipedia.org/wiki/ASCII), [ISO-2022-JP](https://ja.wikipedia.org/wiki/ISO-2022-JP), [EUC-JP](https://ja.wikipedia.org/wiki/EUC-JP), [Shift_JIS](https://ja.wikipedia.org/wiki/Shift_JIS)...とまぁ沢山あります。
16
+
17
+
18
+
19
+ [ユニコード(Unicode)](https://ja.wikipedia.org/wiki/Unicode)は全世界で一つの「文字コード体系」で全ての文字を書き表すというプロジェクトを指します。
20
+
21
+ プロジェクトの結果として作られた文字コード体系はUTF-7, UTF-8, UTF-16, UTF-32などがあります。
8
22
 
9
23
 
10
24
 
@@ -12,69 +26,31 @@
12
26
 
13
27
 
14
28
 
15
- ユニコード以前全ての文字コードが16進数なのです。
29
+ そのchar型代入した12345という数値は、内部的に2進数に変換されます。
16
30
 
31
+ ですので結局は`System.out.println('\u3042');`と同じことを2行に分けているだけです。
32
+
33
+
34
+
35
+ ユニコード以前に全ての文字コードは16進数が基準です。
36
+
17
- コンピュータの世界には0か1かしかありません。
37
+ 元々コンピュータの世界には0か1かしかありません。
18
38
 
19
39
  なのでこの0か1かを大量に使う事で、様々なものを表現するという事を行いました。
20
40
 
21
41
 
22
42
 
23
- 0か1かの2値を1bitとして考え、それを8文字繋げて1byteとしました。
24
-
25
- 計算は2進数で行います。1byteは00000000(0) - 11111111(255)を表す塊です。
26
-
27
- こうてコンピュータ0〜255表現に成功しました
43
+ 下記サイトを見て下さい
28
44
 
29
45
 
30
46
 
31
- コンピュータが発明されたのは英語圏だったので、最初はアルファベットだけで十分でした。
32
-
33
- そして0〜255番号に1文字ずつ宛てていったが[ASCII文字](https://msdn.microsoft.com/ja-jp/library/cc392377.aspx)であり、
47
+ 参考サイト: [【5分で覚えるIT基礎基礎】コンピュータ仕組み---第2回 2進数の世界](http://tech.nikkeibp.co.jp/it/members/ITPro/ITBASIC/20020515/1/)
34
-
35
- 今日でも多くの文字コードが採用している基準の考え方となっています。
36
48
 
37
49
 
38
50
 
39
- ユニコードこの考え方を拡張たもので
51
+ 詳細割愛が、
40
52
 
41
- 全世界の文字は何万字とあります、特に日本や中国漢字一番の曲者でとても255文字では表現しきれません
53
+ 1バイトで表現出来る数値番地(表)に1つずつ文字を当てめて出来たものが文字コード体系
42
-
43
- そこで2byteを1まとめにする事を考え付きます。
44
-
45
- 256通りの表現が出来る2byteをくっつけることで、256*256=65536字を表現することが出来る様になりました。
46
-
47
- (実際には65536字では足りなかったので、今日ではユニコードは多少下火になっていますが、全世界の殆どの文字列を叩き込めたのでなかなかいい感じです)
48
-
49
-
50
-
51
- > 16進数に関してもうちょっと深掘り
52
-
53
-
54
-
55
- 数学で習ったかもしれませんが、2進数は8進数や16進数と非常に相性が良いのです。
56
-
57
- 2進数で1111(15)は16進数のF(15)と同じものです。
58
-
59
-
60
-
61
- 1010101010…の羅列ではプログラマにとっては読みづらくて敵わないので
62
-
63
- 2進数4桁を16進数1桁として取り扱うようになりました。
64
-
65
- これが16進数の由来です。
66
-
67
-
68
-
69
- パソコンはアプリ間、ネットワーク間の通信では0か1かのビットをまとめたビット列を送信しあって通信を行います。
70
-
71
- 0か1かのビット列なんて判別付くのかよ…という訳で、様々な規格があり、規格に沿った通信を行う必要があります。
72
-
73
-
74
-
75
- 文字コードとはビット列を人間が読む文字に変換したいという試みや、
76
-
77
- ルール決めを指すものですので、文字コードだから16進数というわけじゃないんです。
78
54
 
79
55
 
80
56
 
@@ -84,13 +60,13 @@
84
60
 
85
61
  いいえ違います。
86
62
 
87
- パソ通信で送信合うは0101010のビット列すので、そのまでは誰も読めません
63
+ 質問文のードには出てきていません、何か文字モード体系行きしょうという取り決がなされてい
64
+
65
+ [Javaが取り扱う文字コード体系](http://d.hatena.ne.jp/cero-t/20110621/1308667569)はUTF-16のようですね。
88
66
 
89
67
 
90
68
 
91
- 圏で生またASCII文字をはじめとして、世界中に文字コードが存在します。
69
+ アルファベットや数値、日本問わず出力さる全ての文字文字コード体系の表により変換されて表示されます。
92
-
93
- ユニコードは全世界統一を目指して作られた大きな野望を秘めた文字コードの一つです。
94
70
 
95
71
 
96
72
 
@@ -98,14 +74,24 @@
98
74
 
99
75
 
100
76
 
101
- 貴方がこのビット列を触って文字に変換するような仕事に就職すれば必要です
77
+ ありません
102
78
 
103
- しかし、文字コードは通信するアプリやマシンがあって初めて役立つものです
79
+ 貴方は12345いう数値を使って「あ」を出力するシステムを構築するエジニアなりたいのですか?
80
+
81
+ そんなニッチな仕組み何処で使うねん!
104
82
 
105
83
 
106
84
 
107
- 従って有名な文字コードとうのはどのパソコンやソフトにもライブラリという提供されてい
85
+ ただ完全に無いというはありせん
108
86
 
109
- その文字コードを使って通信す分にはマシンの補佐してくれまので、
87
+ 文字コード体系ジニア、文字コード体系から各種OSやプログラミング言語用ライブラリを作るエンジニアが存在するからです
110
88
 
111
- 基本的にパソコンを扱一般ユーザーやプログラミングをすエンジニアであっても普段あま意識する必要はありません。
89
+ いった人間の場合程度の文字ならどの番地にるかくらいは知っておかないと話になりません。
90
+
91
+
92
+
93
+ 教養として知っておくと得なケースがありますので、覚えておく事に損はありません。
94
+
95
+ しかし、有名な文字コード体系というのは、基本的にはどのパソコンやソフトにもライブラリという形で既に提供されています。
96
+
97
+ 普段エンジニアが12345をあに変換したいというケースはまずないと思います。