// // GONMarkupParserUtils.m // GONMarkupParserSample // // Created by Nicolas Goutaland on 08/08/14. // Copyright (c) 2014 Nicolas Goutaland. All rights reserved. // // http://www.w3schools.com/charsets/ref_html_entities_4.asp #import "GONMarkupParserUtils.h" #import "GONMarkupParserManager.h" @implementation GONMarkupParserUtils #pragma mark - Utils + (void)cleanHTMLEntitiesFromString:(NSMutableString *)inputString { for (NSDictionary *htmlEntities in @[dicHTMLEntities, dicDecHTMLEntities, dicHexaHTMLEntities]) { for (NSString *htmlEntity in [htmlEntities allKeys]) { [inputString replaceOccurrencesOfString:htmlEntity withString:[htmlEntities objectForKey:htmlEntity] options:0 range:NSMakeRange(0, inputString.length)]; } } } + (NSAttributedString *)attributedString:(GONMarkupParser *)parser withString:(NSString *)inputString defautColor:(UIColor *)defaultColor defaultFont:(UIFont *)defaultFont defaultAlignment:(NSTextAlignment)defaultAlignment { GONMarkupParser *selectedParser = parser; if (!selectedParser) selectedParser = [GONMarkupParserManager sharedParser]; // Hold initial default configuration NSDictionary *defaultConfiguration = [selectedParser.defaultConfiguration copy]; // Check if parser has default configuration for color / font / alignment. If not, use default configuration // Text color if (![selectedParser.defaultConfiguration objectForKey:NSForegroundColorAttributeName]) { [selectedParser.defaultConfiguration setObject:(defaultColor ? defaultColor : [UIColor blackColor]) forKey:NSForegroundColorAttributeName]; } // Font if (![selectedParser.defaultConfiguration objectForKey:NSFontAttributeName] && defaultFont) { [selectedParser.defaultConfiguration setObject:(defaultFont ? defaultFont : [UIFont systemFontOfSize:[UIFont systemFontSize]]) forKey:NSFontAttributeName]; } // Alignment if (![selectedParser.defaultConfiguration objectForKey:NSParagraphStyleAttributeName]) { NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; paragraphStyle.alignment = defaultAlignment; [selectedParser.defaultConfiguration setObject:paragraphStyle forKey:NSParagraphStyleAttributeName]; } // Compute attributed string NSAttributedString *attributedString = [selectedParser attributedStringFromString:inputString error:nil]; // Reset default configuration [selectedParser.defaultConfiguration removeAllObjects]; [selectedParser.defaultConfiguration addEntriesFromDictionary:defaultConfiguration]; return attributedString; } #pragma mark - Config static NSDictionary *dicHTMLEntities; static NSDictionary *dicDecHTMLEntities; static NSDictionary *dicHexaHTMLEntities; + (void)initialize { [super initialize]; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ dicHTMLEntities = @{ @""" : @"\"", @"&" : @"&", @"'" : @"'", @"<" : @"<", @">" : @">", @" " : @"\u00A0", @"¡" : @"\u00A1", @"¢" : @"\u00A2", @"£" : @"\u00A3", @"¤" : @"\u00A4", @"¥" : @"\u00A5", @"¦" : @"\u00A6", @"§" : @"\u00A7", @"¨" : @"\u00A8", @"©" : @"\u00A9", @"ª" : @"\u00AA", @"«" : @"\u00AB", @"¬" : @"\u00AC", @"­" : @"\u00AD", @"®" : @"\u00AE", @"¯" : @"\u00AF", @"°" : @"\u00B0", @"±" : @"\u00B1", @"²" : @"\u00B2", @"³" : @"\u00B3", @"´" : @"\u00B4", @"µ" : @"\u00B5", @"¶" : @"\u00B6", @"·" : @"\u00B7", @"¸" : @"\u00B8", @"¹" : @"\u00B9", @"º" : @"\u00BA", @"»" : @"\u00BB", @"¼" : @"\u00BC", @"½" : @"\u00BD", @"¾" : @"\u00BE", @"¿" : @"\u00BF", @"À" : @"\u00C0", @"Á" : @"\u00C1", @"Â" : @"\u00C2", @"Ã" : @"\u00C3", @"Ä" : @"\u00C4", @"Å" : @"\u00C5", @"Æ" : @"\u00C6", @"Ç" : @"\u00C7", @"È" : @"\u00C8", @"É" : @"\u00C9", @"Ê" : @"\u00CA", @"Ë" : @"\u00CB", @"Ì" : @"\u00CC", @"Í" : @"\u00CD", @"Î" : @"\u00CE", @"Ï" : @"\u00CF", @"Ð" : @"\u00D0", @"Ñ" : @"\u00D1", @"Ò" : @"\u00D2", @"Ó" : @"\u00D3", @"Ô" : @"\u00D4", @"Õ" : @"\u00D5", @"Ö" : @"\u00D6", @"×" : @"\u00D7", @"Ø" : @"\u00D8", @"Ù" : @"\u00D9", @"Ú" : @"\u00DA", @"Û" : @"\u00DB", @"Ü" : @"\u00DC", @"Ý" : @"\u00DD", @"Þ" : @"\u00DE", @"ß" : @"\u00DF", @"à" : @"\u00E0", @"á" : @"\u00E1", @"â" : @"\u00E2", @"ã" : @"\u00E3", @"ä" : @"\u00E4", @"å" : @"\u00E5", @"æ" : @"\u00E6", @"ç" : @"\u00E7", @"è" : @"\u00E8", @"é" : @"\u00E9", @"ê" : @"\u00EA", @"ë" : @"\u00EB", @"ì" : @"\u00EC", @"í" : @"\u00ED", @"î" : @"\u00EE", @"ï" : @"\u00EF", @"ð" : @"\u00F0", @"ñ" : @"\u00F1", @"ò" : @"\u00F2", @"ó" : @"\u00F3", @"ô" : @"\u00F4", @"õ" : @"\u00F5", @"ö" : @"\u00F6", @"÷" : @"\u00F7", @"ø" : @"\u00F8", @"ù" : @"\u00F9", @"ú" : @"\u00FA", @"û" : @"\u00FB", @"ü" : @"\u00FC", @"ý" : @"\u00FD", @"þ" : @"\u00FE", @"ÿ" : @"\u00FF", @"Œ" : @"\u0152", @"œ" : @"\u0153", @"Š" : @"\u0160", @"š" : @"\u0161", @"Ÿ" : @"\u0178", @"ƒ" : @"\u0192", @"ˆ" : @"\u02C6", @"˜" : @"\u02DC", @"Α" : @"\u0391", @"Β" : @"\u0392", @"Γ" : @"\u0393", @"Δ" : @"\u0394", @"Ε" : @"\u0395", @"Ζ" : @"\u0396", @"Η" : @"\u0397", @"Θ" : @"\u0398", @"Ι" : @"\u0399", @"Κ" : @"\u039A", @"Λ" : @"\u039B", @"Μ" : @"\u039C", @"Ν" : @"\u039D", @"Ξ" : @"\u039E", @"Ο" : @"\u039F", @"Π" : @"\u03A0", @"Ρ" : @"\u03A1", @"Σ" : @"\u03A3", @"Τ" : @"\u03A4", @"Υ" : @"\u03A5", @"Φ" : @"\u03A6", @"Χ" : @"\u03A7", @"Ψ" : @"\u03A8", @"Ω" : @"\u03A9", @"α" : @"\u03B1", @"β" : @"\u03B2", @"γ" : @"\u03B3", @"δ" : @"\u03B4", @"ε" : @"\u03B5", @"ζ" : @"\u03B6", @"η" : @"\u03B7", @"θ" : @"\u03B8", @"ι" : @"\u03B9", @"κ" : @"\u03BA", @"λ" : @"\u03BB", @"μ" : @"\u03BC", @"ν" : @"\u03BD", @"ξ" : @"\u03BE", @"ο" : @"\u03BF", @"π" : @"\u03C0", @"ρ" : @"\u03C1", @"ς" : @"\u03C2", @"σ" : @"\u03C3", @"τ" : @"\u03C4", @"υ" : @"\u03C5", @"φ" : @"\u03C6", @"χ" : @"\u03C7", @"ψ" : @"\u03C8", @"ω" : @"\u03C9", @"ϑ" : @"\u03D1", @"ϒ" : @"\u03D2", @"ϖ" : @"\u03D6", @" " : @"\u2002", @" " : @"\u2003", @" " : @"\u2009", @"‌" : @"\u200C", @"‍" : @"\u200D", @"‎" : @"\u200E", @"‏" : @"\u200F", @"–" : @"\u2013", @"—" : @"\u2014", @"‘" : @"\u2018", @"’" : @"\u2019", @"‚" : @"\u201A", @"“" : @"\u201C", @"”" : @"\u201D", @"„" : @"\u201E", @"†" : @"\u2020", @"‡" : @"\u2021", @"•" : @"\u2022", @"…" : @"\u2026", @"‰" : @"\u2030", @"′" : @"\u2032", @"″" : @"\u2033", @"‹" : @"\u2039", @"›" : @"\u203A", @"‾" : @"\u203E", @"⁄" : @"\u2044", @"€" : @"\u20AC", @"ℑ" : @"\u2111", @"℘" : @"\u2118", @"ℜ" : @"\u211C", @"™" : @"\u2122", @"ℵ" : @"\u2135", @"←" : @"\u2190", @"↑" : @"\u2191", @"→" : @"\u2192", @"↓" : @"\u2193", @"↔" : @"\u2194", @"↵" : @"\u21B5", @"⇐" : @"\u21D0", @"⇑" : @"\u21D1", @"⇒" : @"\u21D2", @"⇓" : @"\u21D3", @"⇔" : @"\u21D4", @"∀" : @"\u2200", @"∂" : @"\u2202", @"∃" : @"\u2203", @"∅" : @"\u2205", @"∇" : @"\u2207", @"∈" : @"\u2208", @"∉" : @"\u2209", @"∋" : @"\u220B", @"∏" : @"\u220F", @"∑" : @"\u2211", @"−" : @"\u2212", @"∗" : @"\u2217", @"√" : @"\u221A", @"∝" : @"\u221D", @"∞" : @"\u221E", @"∠" : @"\u2220", @"∧" : @"\u2227", @"∨" : @"\u2228", @"∩" : @"\u2229", @"∪" : @"\u222A", @"∫" : @"\u222B", @"∴" : @"\u2234", @"∼" : @"\u223C", @"≅" : @"\u2245", @"≈" : @"\u2248", @"≠" : @"\u2260", @"≡" : @"\u2261", @"≤" : @"\u2264", @"≥" : @"\u2265", @"⊂" : @"\u2282", @"⊃" : @"\u2283", @"⊄" : @"\u2284", @"⊆" : @"\u2286", @"⊇" : @"\u2287", @"⊕" : @"\u2295", @"⊗" : @"\u2297", @"⊥" : @"\u22A5", @"⋅" : @"\u22C5", @"⋮" : @"\u22EE", @"⌈" : @"\u2308", @"⌉" : @"\u2309", @"⌊" : @"\u230A", @"⌋" : @"\u230B", @"⟨" : @"\u2329", @"⟩" : @"\u232A", @"◊" : @"\u25CA", @"♠" : @"\u2660", @"♣" : @"\u2663", @"♥" : @"\u2665", @"♦" : @"\u2666" }; dicDecHTMLEntities = @{ @" " : @" ", @"!" : @"!", @""" : @"\"", @"#" : @"#", @"$" : @"$", @"%" : @"%", @"&" : @"&", @"'" : @"'", @"(" : @"(", @")" : @")", @"*" : @"*", @"+" : @"+", @"," : @",", @"-" : @"-", @"." : @".", @"/" : @"/", @"0" : @"0", @"1" : @"1", @"2" : @"2", @"3" : @"3", @"4" : @"4", @"5" : @"5", @"6" : @"6", @"7" : @"7", @"8" : @"8", @"9" : @"9", @":" : @":", @";" : @";", @"<" : @"<", @"=" : @"=", @">" : @">", @"?" : @"?", @"@" : @"@", @"A" : @"A", @"B" : @"B", @"C" : @"C", @"D" : @"D", @"E" : @"E", @"F" : @"F", @"G" : @"G", @"H" : @"H", @"I" : @"I", @"J" : @"J", @"K" : @"K", @"L" : @"L", @"M" : @"M", @"N" : @"N", @"O" : @"O", @"P" : @"P", @"Q" : @"Q", @"R" : @"R", @"S" : @"S", @"T" : @"T", @"U" : @"U", @"V" : @"V", @"W" : @"W", @"X" : @"X", @"Y" : @"Y", @"Z" : @"Z", @"[" : @"[", @"\" : @"\\", @"]" : @"]", @"^" : @"^", @"_" : @"_", @"`" : @"`", @"a" : @"a", @"b" : @"b", @"c" : @"c", @"d" : @"d", @"e" : @"e", @"f" : @"f", @"g" : @"g", @"h" : @"h", @"i" : @"i", @"j" : @"j", @"k" : @"k", @"l" : @"l", @"m" : @"m", @"n" : @"n", @"o" : @"o", @"p" : @"p", @"q" : @"q", @"r" : @"r", @"s" : @"s", @"t" : @"t", @"u" : @"u", @"v" : @"v", @"w" : @"w", @"x" : @"x", @"y" : @"y", @"z" : @"z", @"{" : @"{", @"|" : @"|", @"}" : @"}", @"~" : @"~", @"" : @"\u0127", @"€" : @"\u0128", @"" : @"\u0129", @"‚" : @"\u0130", @"ƒ" : @"\u0131", @"„" : @"\u0132", @"…" : @"\u0133", @"†" : @"\u0134", @"‡" : @"\u0135", @"ˆ" : @"\u0136", @"‰" : @"\u0137", @"Š" : @"\u0138", @"‹" : @"\u0139", @"Œ" : @"\u0140", @"" : @"\u0141", @"Ž" : @"\u0142", @"" : @"\u0143", @"" : @"\u0144", @"‘" : @"\u0145", @"’" : @"\u0146", @"“" : @"\u0147", @"”" : @"\u0148", @"•" : @"\u0149", @"–" : @"\u0150", @"—" : @"\u0151", @"˜" : @"\u0152", @"™" : @"\u0153", @"š" : @"\u0154", @"›" : @"\u0155", @"œ" : @"\u0156", @"" : @"\u0157", @"ž" : @"\u0158", @"Ÿ" : @"\u0159", @" " : @"\u00A0", @"¡" : @"\u00A1", @"¢" : @"\u00A2", @"£" : @"\u00A3", @"¤" : @"\u00A4", @"¥" : @"\u00A5", @"¦" : @"\u00A6", @"§" : @"\u00A7", @"¨" : @"\u00A8", @"©" : @"\u00A9", @"ª" : @"\u00AA", @"«" : @"\u00AB", @"¬" : @"\u00AC", @"­" : @"\u00AD", @"®" : @"\u00AE", @"¯" : @"\u00AF", @"°" : @"\u00B0", @"±" : @"\u00B1", @"²" : @"\u00B2", @"³" : @"\u00B3", @"´" : @"\u00B4", @"µ" : @"\u00B5", @"¶" : @"\u00B6", @"·" : @"\u00B7", @"¸" : @"\u00B8", @"¹" : @"\u00B9", @"º" : @"\u00BA", @"»" : @"\u00BB", @"¼" : @"\u00BC", @"½" : @"\u00BD", @"¾" : @"\u00BE", @"¿" : @"\u00BF", @"À" : @"\u00C0", @"Á" : @"\u00C1", @"Â" : @"\u00C2", @"Ã" : @"\u00C3", @"Ä" : @"\u00C4", @"Å" : @"\u00C5", @"Æ" : @"\u00C6", @"Ç" : @"\u00C7", @"È" : @"\u00C8", @"É" : @"\u00C9", @"Ê" : @"\u00CA", @"Ë" : @"\u00CB", @"Ì" : @"\u00CC", @"Í" : @"\u00CD", @"Î" : @"\u00CE", @"Ï" : @"\u00CF", @"Ð" : @"\u00D0", @"Ñ" : @"\u00D1", @"Ò" : @"\u00D2", @"Ó" : @"\u00D3", @"Ô" : @"\u00D4", @"Õ" : @"\u00D5", @"Ö" : @"\u00D6", @"×" : @"\u00D7", @"Ø" : @"\u00D8", @"Ù" : @"\u00D9", @"Ú" : @"\u00DA", @"Û" : @"\u00DB", @"Ü" : @"\u00DC", @"Ý" : @"\u00DD", @"Þ" : @"\u00DE", @"ß" : @"\u00DF", @"à" : @"\u00E0", @"á" : @"\u00E1", @"â" : @"\u00E2", @"ã" : @"\u00E3", @"ä" : @"\u00E4", @"å" : @"\u00E5", @"æ" : @"\u00E6", @"ç" : @"\u00E7", @"è" : @"\u00E8", @"é" : @"\u00E9", @"ê" : @"\u00EA", @"ë" : @"\u00EB", @"ì" : @"\u00EC", @"í" : @"\u00ED", @"î" : @"\u00EE", @"ï" : @"\u00EF", @"ð" : @"\u00F0", @"ñ" : @"\u00F1", @"ò" : @"\u00F2", @"ó" : @"\u00F3", @"ô" : @"\u00F4", @"õ" : @"\u00F5", @"ö" : @"\u00F6", @"÷" : @"\u00F7", @"ø" : @"\u00F8", @"ù" : @"\u00F9", @"ú" : @"\u00FA", @"û" : @"\u00FB", @"ü" : @"\u00FC", @"ý" : @"\u00FD", @"þ" : @"\u00FE", @"ÿ" : @"\u00FF", @"ƒ" : @"\u0192", @"Α" : @"\u0391", @"Β" : @"\u0392", @"Γ" : @"\u0393", @"Δ" : @"\u0394", @"Ε" : @"\u0395", @"Ζ" : @"\u0396", @"Η" : @"\u0397", @"Θ" : @"\u0398", @"Ι" : @"\u0399", @"Κ" : @"\u039A", @"Λ" : @"\u039B", @"Μ" : @"\u039C", @"Ν" : @"\u039D", @"Ξ" : @"\u039E", @"Ο" : @"\u039F", @"Π" : @"\u03A0", @"Ρ" : @"\u03A1", @"Σ" : @"\u03A3", @"Τ" : @"\u03A4", @"Υ" : @"\u03A5", @"Φ" : @"\u03A6", @"Χ" : @"\u03A7", @"Ψ" : @"\u03A8", @"Ω" : @"\u03A9", @"α" : @"\u03B1", @"β" : @"\u03B2", @"γ" : @"\u03B3", @"δ" : @"\u03B4", @"ε" : @"\u03B5", @"ζ" : @"\u03B6", @"η" : @"\u03B7", @"θ" : @"\u03B8", @"ι" : @"\u03B9", @"κ" : @"\u03BA", @"λ" : @"\u03BB", @"μ" : @"\u03BC", @"ν" : @"\u03BD", @"ξ" : @"\u03BE", @"ο" : @"\u03BF", @"π" : @"\u03C0", @"ρ" : @"\u03C1", @"ς" : @"\u03C2", @"σ" : @"\u03C3", @"τ" : @"\u03C4", @"υ" : @"\u03C5", @"φ" : @"\u03C6", @"χ" : @"\u03C7", @"ψ" : @"\u03C8", @"ω" : @"\u03C9", @"ϑ" : @"\u03D1", @"ϒ" : @"\u03D2", @"ϖ" : @"\u03D6", @"•" : @"\u2022", @"…" : @"\u2026", @"′" : @"\u2032", @"″" : @"\u2033", @"‾" : @"\u203E", @"⁄" : @"\u2044", @"℘" : @"\u2118", @"ℑ" : @"\u2111", @"ℜ" : @"\u211C", @"™" : @"\u2122", @"ℵ" : @"\u2135", @"←" : @"\u2190", @"↑" : @"\u2191", @"→" : @"\u2192", @"↓" : @"\u2193", @"↔" : @"\u2194", @"↵" : @"\u21B5", @"⇐" : @"\u21D0", @"⇑" : @"\u21D1", @"⇒" : @"\u21D2", @"⇓" : @"\u21D3", @"⇔" : @"\u21D4", @"∀" : @"\u2200", @"∂" : @"\u2202", @"∃" : @"\u2203", @"∅" : @"\u2205", @"∇" : @"\u2207", @"∈" : @"\u2208", @"∉" : @"\u2209", @"∋" : @"\u220B", @"∏" : @"\u220F", @"∑" : @"\u2211", @"−" : @"\u2212", @"∗" : @"\u2217", @"√" : @"\u221A", @"∝" : @"\u221D", @"∞" : @"\u221E", @"∠" : @"\u2220", @"∧" : @"\u2227", @"∨" : @"\u2228", @"∩" : @"\u2229", @"∪" : @"\u222A", @"∫" : @"\u222B", @"∴" : @"\u2234", @"∼" : @"\u223C", @"≅" : @"\u2245", @"≈" : @"\u2248", @"≠" : @"\u2260", @"≡" : @"\u2261", @"≤" : @"\u2264", @"≥" : @"\u2265", @"⊂" : @"\u2282", @"⊃" : @"\u2283", @"⊄" : @"\u2284", @"⊆" : @"\u2286", @"⊇" : @"\u2287", @"⊕" : @"\u2295", @"⊗" : @"\u2297", @"⊥" : @"\u22A5", @"⋅" : @"\u22C5", @"⌈" : @"\u2308", @"⌉" : @"\u2309", @"⌊" : @"\u230A", @"⌋" : @"\u230B", @"〈" : @"\u2329", @"〉" : @"\u232A", @"◊" : @"\u25CA", @"♠" : @"\u2660", @"♣" : @"\u2663", @"♥" : @"\u2665", @"♦" : @"\u2666" }; dicHexaHTMLEntities = @{ @" " : @" ", @"!" : @"!", @""" : @"\"", @"#" : @"#", @"$" : @"$", @"%" : @"%", @"&" : @"&", @"'" : @"'", @"(" : @"(", @")" : @")", @"*" : @"*", @"+" : @"+", @"," : @",", @"-" : @"-", @"." : @".", @"/" : @"/", @"0" : @"0", @"1" : @"1", @"2" : @"2", @"3" : @"3", @"4" : @"4", @"5" : @"5", @"6" : @"6", @"7" : @"7", @"8" : @"8", @"9" : @"9", @":" : @":", @";" : @";", @"<" : @"<", @"=" : @"=", @">" : @">", @"?" : @"?", @"@" : @"@", @"A" : @"A", @"B" : @"B", @"C" : @"C", @"D" : @"D", @"E" : @"E", @"F" : @"F", @"G" : @"G", @"H" : @"H", @"I" : @"I", @"J" : @"J", @"K" : @"K", @"L" : @"L", @"M" : @"M", @"N" : @"N", @"O" : @"O", @"P" : @"P", @"Q" : @"Q", @"R" : @"R", @"S" : @"S", @"T" : @"T", @"U" : @"U", @"V" : @"V", @"W" : @"W", @"X" : @"X", @"Y" : @"Y", @"Z" : @"Z", @"[" : @"[", @"\" : @"\\", @"]" : @"]", @"^" : @"^", @"_" : @"_", @"`" : @"`", @"a" : @"a", @"b" : @"b", @"c" : @"c", @"d" : @"d", @"e" : @"e", @"f" : @"f", @"g" : @"g", @"h" : @"h", @"i" : @"i", @"j" : @"j", @"k" : @"k", @"l" : @"l", @"m" : @"m", @"n" : @"n", @"o" : @"o", @"p" : @"p", @"q" : @"q", @"r" : @"r", @"s" : @"s", @"t" : @"t", @"u" : @"u", @"v" : @"v", @"w" : @"w", @"x" : @"x", @"y" : @"y", @"z" : @"z", @"{" : @"{", @"|" : @"|", @"}" : @"}", @"~" : @"~", @"" : @"\u0127", @"€" : @"\u0128", @"" : @"\u0129", @"‚" : @"\u0130", @"ƒ" : @"\u0131", @"„" : @"\u0132", @"…" : @"\u0133", @"†" : @"\u0134", @"‡" : @"\u0135", @"ˆ" : @"\u0136", @"‰" : @"\u0137", @"Š" : @"\u0138", @"‹" : @"\u0139", @"Œ" : @"\u0140", @"" : @"\u0141", @"Ž" : @"\u0142", @"" : @"\u0143", @"" : @"\u0144", @"‘" : @"\u0145", @"’" : @"\u0146", @"“" : @"\u0147", @"”" : @"\u0148", @"•" : @"\u0149", @"–" : @"\u0150", @"—" : @"\u0151", @"˜" : @"\u0152", @"™" : @"\u0153", @"š" : @"\u0154", @"›" : @"\u0155", @"œ" : @"\u0156", @"" : @"\u0157", @"ž" : @"\u0158", @"Ÿ" : @"\u0159", @" " : @"\u00A0", @"¡" : @"\u00A1", @"¢" : @"\u00A2", @"£" : @"\u00A3", @"¤" : @"\u00A4", @"¥" : @"\u00A5", @"¦" : @"\u00A6", @"§" : @"\u00A7", @"¨" : @"\u00A8", @"©" : @"\u00A9", @"ª" : @"\u00AA", @"«" : @"\u00AB", @"¬" : @"\u00AC", @"­" : @"\u00AD", @"®" : @"\u00AE", @"¯" : @"\u00AF", @"°" : @"\u00B0", @"±" : @"\u00B1", @"²" : @"\u00B2", @"³" : @"\u00B3", @"´" : @"\u00B4", @"µ" : @"\u00B5", @"¶" : @"\u00B6", @"·" : @"\u00B7", @"¸" : @"\u00B8", @"¹" : @"\u00B9", @"º" : @"\u00BA", @"»" : @"\u00BB", @"¼" : @"\u00BC", @"½" : @"\u00BD", @"¾" : @"\u00BE", @"¿" : @"\u00BF", @"À" : @"\u00C0", @"Á" : @"\u00C1", @"Â" : @"\u00C2", @"Ã" : @"\u00C3", @"Ä" : @"\u00C4", @"Å" : @"\u00C5", @"Æ" : @"\u00C6", @"Ç" : @"\u00C7", @"È" : @"\u00C8", @"É" : @"\u00C9", @"Ê" : @"\u00CA", @"Ë" : @"\u00CB", @"Ì" : @"\u00CC", @"Í" : @"\u00CD", @"Î" : @"\u00CE", @"Ï" : @"\u00CF", @"Ð" : @"\u00D0", @"Ñ" : @"\u00D1", @"Ò" : @"\u00D2", @"Ó" : @"\u00D3", @"Ô" : @"\u00D4", @"Õ" : @"\u00D5", @"Ö" : @"\u00D6", @"×" : @"\u00D7", @"Ø" : @"\u00D8", @"Ù" : @"\u00D9", @"Ú" : @"\u00DA", @"Û" : @"\u00DB", @"Ü" : @"\u00DC", @"Ý" : @"\u00DD", @"Þ" : @"\u00DE", @"ß" : @"\u00DF", @"à" : @"\u00E0", @"á" : @"\u00E1", @"â" : @"\u00E2", @"ã" : @"\u00E3", @"ä" : @"\u00E4", @"å" : @"\u00E5", @"æ" : @"\u00E6", @"ç" : @"\u00E7", @"è" : @"\u00E8", @"é" : @"\u00E9", @"ê" : @"\u00EA", @"ë" : @"\u00EB", @"ì" : @"\u00EC", @"í" : @"\u00ED", @"î" : @"\u00EE", @"ï" : @"\u00EF", @"ð" : @"\u00F0", @"ñ" : @"\u00F1", @"ò" : @"\u00F2", @"ó" : @"\u00F3", @"ô" : @"\u00F4", @"õ" : @"\u00F5", @"ö" : @"\u00F6", @"÷" : @"\u00F7", @"ø" : @"\u00F8", @"ù" : @"\u00F9", @"ú" : @"\u00FA", @"û" : @"\u00FB", @"ü" : @"\u00FC", @"ý" : @"\u00FD", @"þ" : @"\u00FE", @"ÿ" : @"\u00FF", @"ƒ" : @"\u0192", @"Α" : @"\u0391", @"Β" : @"\u0392", @"Γ" : @"\u0393", @"Δ" : @"\u0394", @"Ε" : @"\u0395", @"Ζ" : @"\u0396", @"Η" : @"\u0397", @"Θ" : @"\u0398", @"Ι" : @"\u0399", @"Κ" : @"\u039A", @"Λ" : @"\u039B", @"Μ" : @"\u039C", @"Ν" : @"\u039D", @"Ξ" : @"\u039E", @"Ο" : @"\u039F", @"Π" : @"\u03A0", @"Ρ" : @"\u03A1", @"Σ" : @"\u03A3", @"Τ" : @"\u03A4", @"Υ" : @"\u03A5", @"Φ" : @"\u03A6", @"Χ" : @"\u03A7", @"Ψ" : @"\u03A8", @"Ω" : @"\u03A9", @"α" : @"\u03B1", @"β" : @"\u03B2", @"γ" : @"\u03B3", @"δ" : @"\u03B4", @"ε" : @"\u03B5", @"ζ" : @"\u03B6", @"η" : @"\u03B7", @"θ" : @"\u03B8", @"ι" : @"\u03B9", @"κ" : @"\u03BA", @"λ" : @"\u03BB", @"μ" : @"\u03BC", @"ν" : @"\u03BD", @"ξ" : @"\u03BE", @"ο" : @"\u03BF", @"π" : @"\u03C0", @"ρ" : @"\u03C1", @"ς" : @"\u03C2", @"σ" : @"\u03C3", @"τ" : @"\u03C4", @"υ" : @"\u03C5", @"φ" : @"\u03C6", @"χ" : @"\u03C7", @"ψ" : @"\u03C8", @"ω" : @"\u03C9", @"ϑ" : @"\u03D1", @"ϒ" : @"\u03D2", @"ϖ" : @"\u03D6", @"•" : @"\u2022", @"…" : @"\u2026", @"′" : @"\u2032", @"″" : @"\u2033", @"‾" : @"\u203E", @"⁄" : @"\u2044", @"℘" : @"\u2118", @"ℑ" : @"\u2111", @"ℜ" : @"\u211C", @"™" : @"\u2122", @"ℵ" : @"\u2135", @"←" : @"\u2190", @"↑" : @"\u2191", @"→" : @"\u2192", @"↓" : @"\u2193", @"↔" : @"\u2194", @"↵" : @"\u21B5", @"⇐" : @"\u21D0", @"⇑" : @"\u21D1", @"⇒" : @"\u21D2", @"⇓" : @"\u21D3", @"⇔" : @"\u21D4", @"∀" : @"\u2200", @"∂" : @"\u2202", @"∃" : @"\u2203", @"∅" : @"\u2205", @"∇" : @"\u2207", @"∈" : @"\u2208", @"∉" : @"\u2209", @"∋" : @"\u220B", @"∏" : @"\u220F", @"∑" : @"\u2211", @"−" : @"\u2212", @"∗" : @"\u2217", @"√" : @"\u221A", @"∝" : @"\u221D", @"∞" : @"\u221E", @"∠" : @"\u2220", @"∧" : @"\u2227", @"∨" : @"\u2228", @"∩" : @"\u2229", @"∪" : @"\u222A", @"∫" : @"\u222B", @"∴" : @"\u2234", @"∼" : @"\u223C", @"≅" : @"\u2245", @"≈" : @"\u2248", @"≠" : @"\u2260", @"≡" : @"\u2261", @"≤" : @"\u2264", @"≥" : @"\u2265", @"⊂" : @"\u2282", @"⊃" : @"\u2283", @"⊄" : @"\u2284", @"⊆" : @"\u2286", @"⊇" : @"\u2287", @"⊕" : @"\u2295", @"⊗" : @"\u2297", @"⊥" : @"\u22A5", @"⋅" : @"\u22C5", @"⌈" : @"\u2308", @"⌉" : @"\u2309", @"⌊" : @"\u230A", @"⌋" : @"\u230B", @"〈" : @"\u2329", @"〉" : @"\u232A", @"◊" : @"\u25CA", @"♠" : @"\u2660", @"♣" : @"\u2663", @"♥" : @"\u2665", @"♦" : @"\u2666" }; }); } @end