|
JIS X 0213:2004 Unicode範囲リスト
2009.03.11(Wed)
QFGのしりとりでハングルを入れる猛者が出現したらしく(笑)、対策を講じなければならなくなった。
入力可能文字を、一般的な日本語フォントで表示できる文字に限りたい。
↓
「一般的な日本語」のUnicodeのホワイトリストを作りたい。
というわけで、「一般的な日本語で利用するUnicodeの範囲」を知りたかったんだけど・・・
これがなかなかない。
フォント配布元のIPAに行ってみると、「JIS X 0213」なる規格があるそうな。
今度はそれで調べてみたんだけど、ネットに落ちてたのはこんなの・・・
JIS X 0213のコード対応表
http://x0213.org/codetable/
どうやって使えと。(笑) ってか範囲ですらないし。
とりあえず全部の対応表をCalcにコピペしてソートして重複を取り除いたところ、要素数20000。
とてもじゃないけどこのままListに放り込んで indexOf とかはできない。
仕方が無いから、リストを作るためのプログラムをわざわざ書くハメに・・・(--;
隣接するコードが遠い(閾値:0x10)ものはそのままString化。
コードが近い物はハイフンで繋げてからString化。
・・・こうして多大な 労力を使って作ったリストが以下。
なんかこの仕事だけで使い捨てるのはもったいないから、誰かが使えるようにメモっとく。
要素数400強。閾値調整すればもっと減るけど、現実的な数値だからこれでいいだろ。
下のほうのは結構使わない文字が集まってる。
リストの上から順に走査してハイフンでsplit、対象の文字のコードが範囲内にあればbreakするようなプログラムを書けば、(日本語に限って言えば)処理は早いはず。
// 常用英数字
"0x0020-0x007E",
// ひらがな、カタカナ
"0x3033-0x30FF",
// 全角数字、半角カタカナ
"0xFF01-0xFF9F","0xFFE3-0xFFE5",
// 常用漢字
"0x4E00-0x4F1D","0x4F2F-0x5516","0x552B-0x5564","0x557B-0x6D45","0x6D58-0x7E9C","0x7F36-0x89C0","0x89D2-0x8B9E",
"0x8C37-0x8D1B","0x8D64-0x8F64","0x8F9B-0x9481","0x9577-0x95E5","0x961C-0x9874","0x98A8-0x9960","0x9996-0x9A6B",
"0x9AA8-0x9C7A","0x9CE5-0x9E1E","0x9E75-0x9F77","0x9F8D-0x9FA2","0xF91D-0xF936","0xF970","0xF9D0-0xF9DC","0xFA0F-0xFA6A",
// その他
"0x00A0-0x017E","0x0193","0x01C2-0x01DC","0x01F8-0x01FD","0x0250-0x02A2","0x02C7-0x02E9","0x0300-0x033D","0x0361",
"0x0391-0x03C9","0x0401-0x0451","0x1E3E-0x1E3F","0x1F70-0x1F73","0x2010-0x2051","0x20AC","0x2103-0x2135","0x2153-0x217B",
"0x2190-0x2199","0x21C4-0x21D4","0x21E6-0x21E9","0x2200-0x22A5","0x22BF","0x22DA-0x22DB","0x2305-0x2318","0x23BE-0x23CE",
"0x2423","0x2460-0x2473","0x24D0-0x254B","0x25A0-0x25D3","0x25E6-0x25EF","0x2600-0x261E","0x2640-0x2642","0x2660-0x266F",
"0x2713","0x2756","0x2776-0x277F","0x2934-0x2935","0x29BF","0x29FA-0x29FB","0x3000-0x3020","0x31F0-0x31FF","0x3231-0x3239",
"0x3251-0x325F","0x32A4-0x32BF","0x32D0-0x3357","0x337B-0x33A1","0x33C4-0x33CD","0x3402-0x3406","0x342C-0x342E","0x3468-0x346A",
"0x3492","0x34B5-0x34C7","0x34DB","0x351F","0x355D-0x356E","0x35A6-0x35A8","0x35C5","0x35DA","0x35F4","0x3605","0x364A",
"0x3691-0x3699","0x36CF","0x3761-0x3775","0x378D","0x37C1","0x37E2-0x3800","0x382F-0x3840","0x385C-0x3861","0x38FA",
"0x3917-0x391A","0x396F","0x3A6E-0x3A73","0x3AD6-0x3AD7","0x3AEA","0x3B0E-0x3B22","0x3B6D-0x3B8D","0x3BA4","0x3BB6-0x3BCD",
"0x3BF0","0x3C0F","0x3C26","0x3CC3-0x3CD2","0x3D11-0x3D1E","0x3D64","0x3D9A","0x3DC0","0x3DD4","0x3E05","0x3E3F","0x3E60-0x3E68",
"0x3E83","0x3E94","0x3F57","0x3F72-0x3F77","0x3FAE","0x3FC9-0x3FD7","0x4039","0x4058","0x4093","0x4105","0x4148-0x414F",
"0x4163","0x41B4-0x41BF","0x41E6-0x41F3","0x4207-0x420E","0x4264","0x42C6-0x42DD","0x4302","0x432B","0x4343","0x43EE-0x43F0",
"0x4408-0x4422","0x4453-0x445B","0x4476-0x447A","0x4491","0x44B3-0x44BE","0x44D4","0x4508-0x450D","0x4525","0x4543","0x459D",
"0x45B8","0x45E5-0x45EA","0x460F","0x4641","0x4665","0x46A1-0x46AF","0x470C","0x4764","0x47FD","0x4816","0x4844-0x484E",
"0x48B5","0x49B0","0x49E7","0x49FA-0x4A04","0x4A29","0x4ABC","0x4B3B","0x4BC2-0x4BD2","0x4BE8","0x4C17-0x4C20","0x4CC4-0x4CD1",
"0x4D07","0x4D77","0xFE45-0xFE46","0x2000B","0x20089","0x200A2-0x200A4","0x201A2","0x20213","0x2032B","0x20371-0x20381",
"0x203F9","0x2044A","0x20509","0x205D6","0x20628","0x2074F","0x20807","0x2083A","0x208B9","0x2097C","0x2099D","0x20AD3",
"0x20B1D","0x20B9F","0x20D45","0x20DE1","0x20E64-0x20E6D","0x20E95","0x20F5F","0x21201","0x2123D","0x21255","0x21274-0x2127B",
"0x212D7-0x212E4","0x212FD","0x2131B","0x21336-0x21344","0x213C4","0x2146D-0x2146E","0x215D7","0x21647","0x216B4","0x21706",
"0x21742","0x218BD","0x219C3","0x21C56","0x21D2D","0x21D45","0x21D62","0x21D78","0x21D92-0x21DA1","0x21DB7","0x21DE0",
"0x21E33-0x21E34","0x21F1E","0x21F76","0x21FFA","0x2217B","0x22218","0x2231E","0x223AD","0x226F3","0x2285B","0x228AB",
"0x2298F","0x22AB8","0x22B46-0x22B50","0x22BA6","0x22C1D-0x22C24","0x22DE1","0x231B6-0x231C4","0x231F5","0x23372","0x233D0-0x233E4",
"0x2344A-0x23451","0x23465","0x234E4","0x2355A","0x23594","0x235C4","0x23638-0x23647","0x2370C-0x2371C","0x2373F","0x23763-0x23764",
"0x237E7","0x237FF","0x23824","0x2383D","0x23A98","0x23C7F","0x23CFE-0x23D0E","0x23D40","0x23DD3","0x23DF9-0x23DFA",
"0x23F7E","0x24096","0x24103","0x241C6","0x241FE","0x243BC","0x24629","0x246A5","0x247F1","0x24896","0x24A4D","0x24B56",
"0x24B6F","0x24C16","0x24D14","0x24E0E","0x24E37","0x24E6A","0x24E8B","0x2504A-0x25055","0x25122","0x251A9","0x251CD",
"0x251E5","0x2521E","0x2524C","0x2542E","0x2548E","0x254D9","0x2550E","0x255A7","0x25771","0x257A9-0x257B4","0x259C4-0x259D4",
"0x25AE3-0x25AF1","0x25BB2","0x25C4B","0x25C64","0x25DA1","0x25E2E","0x25E56-0x25E65","0x25EC2","0x25ED8-0x25EE8","0x25F23",
"0x25F5C","0x25FD4-0x25FE0","0x25FFB","0x2600C-0x26017","0x26060","0x260ED","0x26270","0x26286","0x2634C","0x26402","0x2667E",
"0x266B0","0x2671D","0x268DD-0x268EA","0x26951","0x2696F","0x269DD","0x26A1E","0x26A58","0x26A8C","0x26AB7","0x26AFF","0x26C29",
"0x26C73","0x26CDD","0x26E40","0x26E65","0x26F94","0x26FF6-0x26FF8","0x270F4","0x2710D","0x27139","0x273DA-0x273DB","0x273FE",
"0x27410","0x27449","0x27614-0x27615","0x27631","0x27684-0x27693","0x2770E","0x27723","0x27752","0x27985","0x27A84","0x27BB3-0x27BC7",
"0x27CB8","0x27DA0","0x27E10","0x27FB7","0x2808A","0x280BB","0x28277-0x28282","0x282F3","0x283CD","0x2840C","0x28455","0x2856B",
"0x285C8-0x285C9","0x286D7","0x286FA","0x28946-0x28949","0x2896B","0x28987-0x28988","0x289BA-0x289BB","0x28A1E-0x28A29","0x28A43",
"0x28A71","0x28A99","0x28ACD-0x28AE4","0x28BC1","0x28BEF","0x28D10","0x28D71","0x28DFB","0x28E1F","0x28E36","0x28E89","0x28EEB",
"0x28F32","0x28FF8","0x292A0","0x292B1","0x29490","0x295CF","0x2967F","0x296F0","0x29719","0x29750","0x298C6","0x29A72","0x29DDB",
"0x29E15","0x29E3D-0x29E49","0x29E8A","0x29EC4","0x29EDB-0x29EE9","0x29FCE","0x2A01A","0x2A02F","0x2A082","0x2A0F9","0x2A190",
"0x2A38C","0x2A437","0x2A5F1","0x2A602","0x2A61A","0x2A6B2"
お疲れ、オレ。
|
|