« ◇BNFは間違っている:繰り返しを再帰で表すべきではない | トップページ | Java大規模開発、jarのマージ »

16進コードメモ:文字コードやアイキャッチなど

メモです。

 全角空白

おそらく文字の取り扱いの中で最も難しいのが空白、および空白系の 文字でしょう。

UNICODEの全角空白はu3000です。
空白を表す正規表現は、Unicodeを許す系(Javaなど)では

[ \t\n\r\f\u3000]+
となります。(バックスペースはいわゆる空白とは異なりますので入れません)

Javaコンパイラも全角空白を空白として取り扱うくらいのことはやって もらいたいものです。

改行はWidowsでは[CR]-[LF]ですがこの2文字が1文字扱いなのか 2文字扱いなのかは読み込み方によって変わります。詳しくは頭 がおかしくなりそうなので省きます。
XMLなどもそうですが欧米の規約は空白の取り扱いがあまりにも雑すぎます。

 日本語unicodeの範囲(正規表現でどう指定するか)

日本語の通常の文字のunicodeの範囲は次のようになっています。

先頭最終 補足
漢字 龥(9fa5)の代わりに龠(9fa0)を指定すると書いてある記事もあります
4e009fa5
ひらがな ぁ(3041)は小さな'あ'です。
30413094
カタカナ ァ(30a1)は小さな'ア'です。ー(30fc)は長音記号です。
30a130fc

この表は

The Unicode Standard

Version 3.0

The Unicode Consortium

ADDISON-WESLEY
を元に作成しました。

この表の指定では、 かなはゝ(309d)などの記号類を含みませんがカタカナは中点・(30fb)を含んでいます。

漢字かなの有効な一般的識別子の正規表現は次のようになります。

   [a-zA-Z_\u4e00-\u9fa5\u3041-\u3094\u30a1-\u30fc]
         [a-zA-Z_0-9\u4e00-\u9fa5\u3041-\u3094\u30a1-\u30fc]*
次のようにも書けますが入力が難しいでしょう。
   [a-zA-Z_一-龥ぁ-ゔァ-ー][a-zA-Z_0-9一-龥ぁ-ゔァ-ー]*
なんか悲鳴を上げているように見える。。。

繰り返し記号ゝ(309d)なども含めるべきだという考えもあるとおもいます。 その場合は次のようになります。

先頭最終 補足
漢字 龥(9fa5)の代わりに龠(9fa0)を指定すると書いてある記事もあります
4e009fa5
ひらがな ぁ(3041)は小さな'あ'です。
30413094
ひらがな記号 ゛(309b)は濁音記号、ゞ(309e)は濁音付き繰り返し記号です。
309b309e
カタカナ ァ(30a1)は小さな'ア'です。ヾ(30fe)は濁音付き繰り返し記号です。
30a130fe
[a-zA-Z_\u4e00-\u9fa5\u3041-\u3094\u309b-\u309e\u30a1-\u30fc]
  [a-zA-Z_0-9\u4e00-\u9fa5\u3041-\u3094\u309b-\u309e\u30a1-\u30fc]*

ひらがなは3095~3098まで定義されておらず、3099、309aは文字組み合わせ用の 濁音、版濁音です。

長音記号以外の記号や、ほぼ使われることのない小さなカ ヵ(30f5)~ヷ(30f7)~ヺ(30fa) を使わない場合は 次のようになります。

先頭最終 補足
漢字 龥(9fa5)の代わりに龠(9fa0)を指定すると書いてある記事もあります
4e009fa5
ひらがな ぁ(3041)は小さな'あ'です。
30413094
カタカナ ァ(30a1)は小さな'ア'です。
30a130f4
カタカナ記号 ー(30fc)は長音記号です。
30fc

[a-zA-Z_\u4e00-\u9fa5\u3041-\u3094\u30a1-\u30f4\u30fc]
  [a-zA-Z_0-9\u4e00-\u9fa5\u3041-\u3094\u30a1-\u30f4\u30fc]*
2010/5/14:
JavaとUnicodeエスケープに関する注意を Javaとエスケープ文字 に置きました。

 ビットパターンと16進

2進 16進 10進 2進 16進 10進 2進 16進 10進 2進 16進 10進
0000 0 0 0100 4 4 1000 8 8 1100 C 12
0001 1 1 0101 5 5 1001 9 9 1101 D 13
0010 2 2 0110 6 6 1010 A 10 1110 E 14
0011 3 3 0111 7 7 1011 B 11 1111 F 15


 ASCII文字コード

0- 1- 2- 3- 4- 5- 6- 7-
-0 NULL DLE SP 0 @ P ` p
-1 STX DC1 ! 1 A Q a q
-2 SOT DC2 " 2 B R b r
-3 ETX DC3 # 3 C S c s
-4 ETX DC4 $ 4 D T d t
-5 ENK NAK % 5 E U e u
-6 ACK SYN & 6 F V f v
-7 BEL ETB ' 7 G W g w
-8 BS CAN ( 8 H X h x
-9 HT EM ) 9 I Y i y
-A LF SUB * : J Z j z
-B VT ESC + ; K [ k {
-C FF FS , < L l |
-D CR GS - = M ] m }
-E SO RS . > N ^ n ~
-F SI US / ? O _ o DEL

補足:
C/Javaのエスケープ表現では  HT='\t',LF='\n',FF='\f',CR='\r'  です。


 アイキャッチパターン

16進 10進 16進 10進 16進 10進 16進 10進
00 0 11 17 22 34 33 51
44 68 55 85 66 102 77 119
88 136 99 153 AA 170 BB 187
CC 204 DD 221 EE 238 FF 255
BABE 47806 FACE 64206 BEEF 48879 CAFE 51966
BA 186 FA 250 BE 190 CA 202
BE 190 CE 206 EF 239 FE 254
FFFF 65535 EEEE 61166 DDDD 5679 CCCC 52428
BBBB 48059 AAAA 43690 9999 39321 8888 34952
7777 30583 6666 26214 5555 21845 4444 17476
3333 13107 2222 8738 1111 4369 0000 0
1234 4660 5678 22136 ABCD 43981 4321 17185
04D2 1234 162E 5678 ffFB2E -1234 10E1 4321


 ###

こんな分かりきったものでも、ネットで直ぐアクセスできれば便利だ。 ということで、あくまで個人的メモです。

|

« ◇BNFは間違っている:繰り返しを再帰で表すべきではない | トップページ | Java大規模開発、jarのマージ »

トラックバック


この記事へのトラックバック一覧です: 16進コードメモ:文字コードやアイキャッチなど:

« ◇BNFは間違っている:繰り返しを再帰で表すべきではない | トップページ | Java大規模開発、jarのマージ »