|
//
// 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
|