/* * This file is subject to the terms and conditions defined in * file 'LICENSE.md', which is part of this source code package. */ package textencoding import "sync" const baseZapfDingbats = "ZapfDingbatsEncoding" var ( zapfDingbatsOnce sync.Once zapfDingbatsRuneToChar map[rune]byte ) func init() { RegisterSimpleEncoding(baseZapfDingbats, NewZapfDingbatsEncoder) } // NewZapfDingbatsEncoder returns a SimpleEncoder that implements ZapfDingbatsEncoding. func NewZapfDingbatsEncoder() SimpleEncoder { zapfDingbatsOnce.Do(initZapfDingbats) return &simpleEncoding{ baseName: baseZapfDingbats, encode: zapfDingbatsRuneToChar, decode: zapfDingbatsCharToRune, } } func initZapfDingbats() { zapfDingbatsRuneToChar = make(map[rune]byte, len(zapfDingbatsRuneToChar)) for b, r := range zapfDingbatsCharToRune { zapfDingbatsRuneToChar[r] = b } } var zapfDingbatsCharToRune = map[byte]rune{ // 202 entries 0x20: 0x0020, // "space" 0x21: 0x2701, // ✁ "a1" 0x22: 0x2702, // ✂ "a2" 0x23: 0x2703, // ✃ "a202" 0x24: 0x2704, // ✄ "a3" 0x25: 0x260e, // ☎ "a4" 0x26: 0x2706, // ✆ "a5" 0x27: 0x2707, // ✇ "a119" 0x28: 0x2708, // ✈ "a118" 0x29: 0x2709, // ✉ "a117" 0x2a: 0x261b, // ☛ "a11" 0x2b: 0x261e, // ☞ "a12" 0x2c: 0x270c, // ✌ "a13" 0x2d: 0x270d, // ✍ "a14" 0x2e: 0x270e, // ✎ "a15" 0x2f: 0x270f, // ✏ "a16" 0x30: 0x2710, // ✐ "a105" 0x31: 0x2711, // ✑ "a17" 0x32: 0x2712, // ✒ "a18" 0x33: 0x2713, // ✓ "a19" 0x34: 0x2714, // ✔ "a20" 0x35: 0x2715, // ✕ "a21" 0x36: 0x2716, // ✖ "a22" 0x37: 0x2717, // ✗ "a23" 0x38: 0x2718, // ✘ "a24" 0x39: 0x2719, // ✙ "a25" 0x3a: 0x271a, // ✚ "a26" 0x3b: 0x271b, // ✛ "a27" 0x3c: 0x271c, // ✜ "a28" 0x3d: 0x271d, // ✝ "a6" 0x3e: 0x271e, // ✞ "a7" 0x3f: 0x271f, // ✟ "a8" 0x40: 0x2720, // ✠ "a9" 0x41: 0x2721, // ✡ "a10" 0x42: 0x2722, // ✢ "a29" 0x43: 0x2723, // ✣ "a30" 0x44: 0x2724, // ✤ "a31" 0x45: 0x2725, // ✥ "a32" 0x46: 0x2726, // ✦ "a33" 0x47: 0x2727, // ✧ "a34" 0x48: 0x2605, // ★ "a35" 0x49: 0x2729, // ✩ "a36" 0x4a: 0x272a, // ✪ "a37" 0x4b: 0x272b, // ✫ "a38" 0x4c: 0x272c, // ✬ "a39" 0x4d: 0x272d, // ✭ "a40" 0x4e: 0x272e, // ✮ "a41" 0x4f: 0x272f, // ✯ "a42" 0x50: 0x2730, // ✰ "a43" 0x51: 0x2731, // ✱ "a44" 0x52: 0x2732, // ✲ "a45" 0x53: 0x2733, // ✳ "a46" 0x54: 0x2734, // ✴ "a47" 0x55: 0x2735, // ✵ "a48" 0x56: 0x2736, // ✶ "a49" 0x57: 0x2737, // ✷ "a50" 0x58: 0x2738, // ✸ "a51" 0x59: 0x2739, // ✹ "a52" 0x5a: 0x273a, // ✺ "a53" 0x5b: 0x273b, // ✻ "a54" 0x5c: 0x273c, // ✼ "a55" 0x5d: 0x273d, // ✽ "a56" 0x5e: 0x273e, // ✾ "a57" 0x5f: 0x273f, // ✿ "a58" 0x60: 0x2740, // ❀ "a59" 0x61: 0x2741, // ❁ "a60" 0x62: 0x2742, // ❂ "a61" 0x63: 0x2743, // ❃ "a62" 0x64: 0x2744, // ❄ "a63" 0x65: 0x2745, // ❅ "a64" 0x66: 0x2746, // ❆ "a65" 0x67: 0x2747, // ❇ "a66" 0x68: 0x2748, // ❈ "a67" 0x69: 0x2749, // ❉ "a68" 0x6a: 0x274a, // ❊ "a69" 0x6b: 0x274b, // ❋ "a70" 0x6c: 0x25cf, // ● "a71" 0x6d: 0x274d, // ❍ "a72" 0x6e: 0x25a0, // ■ "a73" 0x6f: 0x274f, // ❏ "a74" 0x70: 0x2750, // ❐ "a203" 0x71: 0x2751, // ❑ "a75" 0x72: 0x2752, // ❒ "a204" 0x73: 0x25b2, // ▲ "a76" 0x74: 0x25bc, // ▼ "a77" 0x75: 0x25c6, // ◆ "a78" 0x76: 0x2756, // ❖ "a79" 0x77: 0x25d7, // ◗ "a81" 0x78: 0x2758, // ❘ "a82" 0x79: 0x2759, // ❙ "a83" 0x7a: 0x275a, // ❚ "a84" 0x7b: 0x275b, // ❛ "a97" 0x7c: 0x275c, // ❜ "a98" 0x7d: 0x275d, // ❝ "a99" 0x7e: 0x275e, // ❞ "a100" 0x80: 0xf8d7, // "a89" 0x81: 0xf8d8, // "a90" 0x82: 0xf8d9, // "a93" 0x83: 0xf8da, // "a94" 0x84: 0xf8db, // "a91" 0x85: 0xf8dc, // "a92" 0x86: 0xf8dd, // "a205" 0x87: 0xf8de, // "a85" 0x88: 0xf8df, // "a206" 0x89: 0xf8e0, // "a86" 0x8a: 0xf8e1, // "a87" 0x8b: 0xf8e2, // "a88" 0x8c: 0xf8e3, // "a95" 0x8d: 0xf8e4, // "a96" 0xa1: 0x2761, // ❡ "a101" 0xa2: 0x2762, // ❢ "a102" 0xa3: 0x2763, // ❣ "a103" 0xa4: 0x2764, // ❤ "a104" 0xa5: 0x2765, // ❥ "a106" 0xa6: 0x2766, // ❦ "a107" 0xa7: 0x2767, // ❧ "a108" 0xa8: 0x2663, // ♣ "a112" 0xa9: 0x2666, // ♦ "a111" 0xaa: 0x2665, // ♥ "a110" 0xab: 0x2660, // ♠ "a109" 0xac: 0x2460, // ① "a120" 0xad: 0x2461, // ② "a121" 0xae: 0x2462, // ③ "a122" 0xaf: 0x2463, // ④ "a123" 0xb0: 0x2464, // ⑤ "a124" 0xb1: 0x2465, // ⑥ "a125" 0xb2: 0x2466, // ⑦ "a126" 0xb3: 0x2467, // ⑧ "a127" 0xb4: 0x2468, // ⑨ "a128" 0xb5: 0x2469, // ⑩ "a129" 0xb6: 0x2776, // ❶ "a130" 0xb7: 0x2777, // ❷ "a131" 0xb8: 0x2778, // ❸ "a132" 0xb9: 0x2779, // ❹ "a133" 0xba: 0x277a, // ❺ "a134" 0xbb: 0x277b, // ❻ "a135" 0xbc: 0x277c, // ❼ "a136" 0xbd: 0x277d, // ❽ "a137" 0xbe: 0x277e, // ❾ "a138" 0xbf: 0x277f, // ❿ "a139" 0xc0: 0x2780, // ➀ "a140" 0xc1: 0x2781, // ➁ "a141" 0xc2: 0x2782, // ➂ "a142" 0xc3: 0x2783, // ➃ "a143" 0xc4: 0x2784, // ➄ "a144" 0xc5: 0x2785, // ➅ "a145" 0xc6: 0x2786, // ➆ "a146" 0xc7: 0x2787, // ➇ "a147" 0xc8: 0x2788, // ➈ "a148" 0xc9: 0x2789, // ➉ "a149" 0xca: 0x278a, // ➊ "a150" 0xcb: 0x278b, // ➋ "a151" 0xcc: 0x278c, // ➌ "a152" 0xcd: 0x278d, // ➍ "a153" 0xce: 0x278e, // ➎ "a154" 0xcf: 0x278f, // ➏ "a155" 0xd0: 0x2790, // ➐ "a156" 0xd1: 0x2791, // ➑ "a157" 0xd2: 0x2792, // ➒ "a158" 0xd3: 0x2793, // ➓ "a159" 0xd4: 0x2794, // ➔ "a160" 0xd5: 0x2192, // → "a161" 0xd6: 0x2194, // ↔ "a163" 0xd7: 0x2195, // ↕ "a164" 0xd8: 0x2798, // ➘ "a196" 0xd9: 0x2799, // ➙ "a165" 0xda: 0x279a, // ➚ "a192" 0xdb: 0x279b, // ➛ "a166" 0xdc: 0x279c, // ➜ "a167" 0xdd: 0x279d, // ➝ "a168" 0xde: 0x279e, // ➞ "a169" 0xdf: 0x279f, // ➟ "a170" 0xe0: 0x27a0, // ➠ "a171" 0xe1: 0x27a1, // ➡ "a172" 0xe2: 0x27a2, // ➢ "a173" 0xe3: 0x27a3, // ➣ "a162" 0xe4: 0x27a4, // ➤ "a174" 0xe5: 0x27a5, // ➥ "a175" 0xe6: 0x27a6, // ➦ "a176" 0xe7: 0x27a7, // ➧ "a177" 0xe8: 0x27a8, // ➨ "a178" 0xe9: 0x27a9, // ➩ "a179" 0xea: 0x27aa, // ➪ "a193" 0xeb: 0x27ab, // ➫ "a180" 0xec: 0x27ac, // ➬ "a199" 0xed: 0x27ad, // ➭ "a181" 0xee: 0x27ae, // ➮ "a200" 0xef: 0x27af, // ➯ "a182" 0xf1: 0x27b1, // ➱ "a201" 0xf2: 0x27b2, // ➲ "a183" 0xf3: 0x27b3, // ➳ "a184" 0xf4: 0x27b4, // ➴ "a197" 0xf5: 0x27b5, // ➵ "a185" 0xf6: 0x27b6, // ➶ "a194" 0xf7: 0x27b7, // ➷ "a198" 0xf8: 0x27b8, // ➸ "a186" 0xf9: 0x27b9, // ➹ "a195" 0xfa: 0x27ba, // ➺ "a187" 0xfb: 0x27bb, // ➻ "a188" 0xfc: 0x27bc, // ➼ "a189" 0xfd: 0x27bd, // ➽ "a190" 0xfe: 0x27be, // ➾ "a191" }