. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Encodings; use InvalidArgumentException; use function chr; use function mb_substitute_character; /** * Convert between (potentially invalid) UTF-8 and UTF-8. */ class UTF8 extends AbstractEncoding { public const NAME = 'UTF-8'; public const START_OF_STRING = "\u{0098}"; public const STRING_TERMINATOR = "\u{009C}"; public const NO_BREAK_SPACE = "\u{00A0}"; public const INVERTED_EXCLAMATION_MARK = "\u{00A1}"; public const CENT_SIGN = "\u{00A2}"; public const POUND_SIGN = "\u{00A3}"; public const CURRENCY_SIGN = "\u{00A4}"; public const YEN_SIGN = "\u{00A5}"; public const BROKEN_BAR = "\u{00A6}"; public const SECTION_SIGN = "\u{00A7}"; public const DIAERESIS = "\u{00A8}"; public const COPYRIGHT_SIGN = "\u{00A9}"; public const FEMININE_ORDINAL_INDICATOR = "\u{00AA}"; public const LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = "\u{00AB}"; public const NOT_SIGN = "\u{00AC}"; public const SOFT_HYPHEN = "\u{00AD}"; public const REGISTERED_SIGN = "\u{00AE}"; public const MACRON = "\u{00AF}"; public const DEGREE_SIGN = "\u{00B0}"; public const PLUS_MINUS_SIGN = "\u{00B1}"; public const SUPERSCRIPT_TWO = "\u{00B2}"; public const SUPERSCRIPT_THREE = "\u{00B3}"; public const ACUTE_ACCENT = "\u{00B4}"; public const MICRO_SIGN = "\u{00B5}"; public const PILCROW_SIGN = "\u{00B6}"; public const MIDDLE_DOT = "\u{00B7}"; public const CEDILLA = "\u{00B8}"; public const SUPERSCRIPT_ONE = "\u{00B9}"; public const MASCULINE_ORDINAL_INDICATOR = "\u{00BA}"; public const RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = "\u{00BB}"; public const VULGAR_FRACTION_ONE_QUARTER = "\u{00BC}"; public const VULGAR_FRACTION_ONE_HALF = "\u{00BD}"; public const VULGAR_FRACTION_THREE_QUARTERS = "\u{00BE}"; public const INVERTED_QUESTION_MARK = "\u{00BF}"; public const LATIN_CAPITAL_LETTER_A_WITH_GRAVE = "\u{00C0}"; public const LATIN_CAPITAL_LETTER_A_WITH_ACUTE = "\u{00C1}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX = "\u{00C2}"; public const LATIN_CAPITAL_LETTER_A_WITH_TILDE = "\u{00C3}"; public const LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = "\u{00C4}"; public const LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = "\u{00C5}"; public const LATIN_CAPITAL_LETTER_AE = "\u{00C6}"; public const LATIN_CAPITAL_LETTER_C_WITH_CEDILLA = "\u{00C7}"; public const LATIN_CAPITAL_LETTER_E_WITH_GRAVE = "\u{00C8}"; public const LATIN_CAPITAL_LETTER_E_WITH_ACUTE = "\u{00C9}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX = "\u{00CA}"; public const LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS = "\u{00CB}"; public const LATIN_CAPITAL_LETTER_I_WITH_GRAVE = "\u{00CC}"; public const LATIN_CAPITAL_LETTER_I_WITH_ACUTE = "\u{00CD}"; public const LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX = "\u{00CE}"; public const LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS = "\u{00CF}"; public const LATIN_CAPITAL_LETTER_ETH = "\u{00D0}"; public const LATIN_CAPITAL_LETTER_N_WITH_TILDE = "\u{00D1}"; public const LATIN_CAPITAL_LETTER_O_WITH_GRAVE = "\u{00D2}"; public const LATIN_CAPITAL_LETTER_O_WITH_ACUTE = "\u{00D3}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX = "\u{00D4}"; public const LATIN_CAPITAL_LETTER_O_WITH_TILDE = "\u{00D5}"; public const LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = "\u{00D6}"; public const MULTIPLICATION_SIGN = "\u{00D7}"; public const LATIN_CAPITAL_LETTER_O_WITH_STROKE = "\u{00D8}"; public const LATIN_CAPITAL_LETTER_U_WITH_GRAVE = "\u{00D9}"; public const LATIN_CAPITAL_LETTER_U_WITH_ACUTE = "\u{00DA}"; public const LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX = "\u{00DB}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = "\u{00DC}"; public const LATIN_CAPITAL_LETTER_Y_WITH_ACUTE = "\u{00DD}"; public const LATIN_CAPITAL_LETTER_THORN = "\u{00DE}"; public const LATIN_SMALL_LETTER_SHARP_S = "\u{00DF}"; public const LATIN_SMALL_LETTER_A_WITH_GRAVE = "\u{00E0}"; public const LATIN_SMALL_LETTER_A_WITH_ACUTE = "\u{00E1}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = "\u{00E2}"; public const LATIN_SMALL_LETTER_A_WITH_TILDE = "\u{00E3}"; public const LATIN_SMALL_LETTER_A_WITH_DIAERESIS = "\u{00E4}"; public const LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = "\u{00E5}"; public const LATIN_SMALL_LETTER_AE = "\u{00E6}"; public const LATIN_SMALL_LETTER_C_WITH_CEDILLA = "\u{00E7}"; public const LATIN_SMALL_LETTER_E_WITH_GRAVE = "\u{00E8}"; public const LATIN_SMALL_LETTER_E_WITH_ACUTE = "\u{00E9}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = "\u{00EA}"; public const LATIN_SMALL_LETTER_E_WITH_DIAERESIS = "\u{00EB}"; public const LATIN_SMALL_LETTER_I_WITH_GRAVE = "\u{00EC}"; public const LATIN_SMALL_LETTER_I_WITH_ACUTE = "\u{00ED}"; public const LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = "\u{00EE}"; public const LATIN_SMALL_LETTER_I_WITH_DIAERESIS = "\u{00EF}"; public const LATIN_SMALL_LETTER_ETH = "\u{00F0}"; public const LATIN_SMALL_LETTER_N_WITH_TILDE = "\u{00F1}"; public const LATIN_SMALL_LETTER_O_WITH_GRAVE = "\u{00F2}"; public const LATIN_SMALL_LETTER_O_WITH_ACUTE = "\u{00F3}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = "\u{00F4}"; public const LATIN_SMALL_LETTER_O_WITH_TILDE = "\u{00F5}"; public const LATIN_SMALL_LETTER_O_WITH_DIAERESIS = "\u{00F6}"; public const DIVISION_SIGN = "\u{00F7}"; public const LATIN_SMALL_LETTER_O_WITH_STROKE = "\u{00F8}"; public const LATIN_SMALL_LETTER_U_WITH_GRAVE = "\u{00F9}"; public const LATIN_SMALL_LETTER_U_WITH_ACUTE = "\u{00FA}"; public const LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = "\u{00FB}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS = "\u{00FC}"; public const LATIN_SMALL_LETTER_Y_WITH_ACUTE = "\u{00FD}"; public const LATIN_SMALL_LETTER_THORN = "\u{00FE}"; public const LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = "\u{00FF}"; public const LATIN_CAPITAL_LETTER_A_WITH_MACRON = "\u{0100}"; public const LATIN_SMALL_LETTER_A_WITH_MACRON = "\u{0101}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE = "\u{0102}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE = "\u{0103}"; public const LATIN_CAPITAL_LETTER_A_WITH_OGONEK = "\u{0104}"; public const LATIN_SMALL_LETTER_A_WITH_OGONEK = "\u{0105}"; public const LATIN_CAPITAL_LETTER_C_WITH_ACUTE = "\u{0106}"; public const LATIN_SMALL_LETTER_C_WITH_ACUTE = "\u{0107}"; public const LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX = "\u{0108}"; public const LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX = "\u{0109}"; public const LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE = "\u{010A}"; public const LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE = "\u{010B}"; public const LATIN_CAPITAL_LETTER_C_WITH_CARON = "\u{010C}"; public const LATIN_SMALL_LETTER_C_WITH_CARON = "\u{010D}"; public const LATIN_CAPITAL_LETTER_D_WITH_CARON = "\u{010E}"; public const LATIN_SMALL_LETTER_D_WITH_CARON = "\u{010F}"; public const LATIN_CAPITAL_LETTER_D_WITH_STROKE = "\u{0110}"; public const LATIN_SMALL_LETTER_D_WITH_STROKE = "\u{0111}"; public const LATIN_CAPITAL_LETTER_E_WITH_MACRON = "\u{0112}"; public const LATIN_SMALL_LETTER_E_WITH_MACRON = "\u{0113}"; public const LATIN_CAPITAL_LETTER_E_WITH_BREVE = "\u{0114}"; public const LATIN_SMALL_LETTER_E_WITH_BREVE = "\u{0115}"; public const LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE = "\u{0116}"; public const LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE = "\u{0117}"; public const LATIN_CAPITAL_LETTER_E_WITH_OGONEK = "\u{0118}"; public const LATIN_SMALL_LETTER_E_WITH_OGONEK = "\u{0119}"; public const LATIN_CAPITAL_LETTER_E_WITH_CARON = "\u{011A}"; public const LATIN_SMALL_LETTER_E_WITH_CARON = "\u{011B}"; public const LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX = "\u{011C}"; public const LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX = "\u{011D}"; public const LATIN_CAPITAL_LETTER_G_WITH_BREVE = "\u{011E}"; public const LATIN_SMALL_LETTER_G_WITH_BREVE = "\u{011F}"; public const LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE = "\u{0120}"; public const LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE = "\u{0121}"; public const LATIN_CAPITAL_LETTER_G_WITH_CEDILLA = "\u{0122}"; public const LATIN_SMALL_LETTER_G_WITH_CEDILLA = "\u{0123}"; public const LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX = "\u{0124}"; public const LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX = "\u{0125}"; public const LATIN_CAPITAL_LETTER_H_WITH_STROKE = "\u{0126}"; public const LATIN_SMALL_LETTER_H_WITH_STROKE = "\u{0127}"; public const LATIN_CAPITAL_LETTER_I_WITH_TILDE = "\u{0128}"; public const LATIN_SMALL_LETTER_I_WITH_TILDE = "\u{0129}"; public const LATIN_CAPITAL_LETTER_I_WITH_MACRON = "\u{012A}"; public const LATIN_SMALL_LETTER_I_WITH_MACRON = "\u{012B}"; public const LATIN_CAPITAL_LETTER_I_WITH_BREVE = "\u{012C}"; public const LATIN_SMALL_LETTER_I_WITH_BREVE = "\u{012D}"; public const LATIN_CAPITAL_LETTER_I_WITH_OGONEK = "\u{012E}"; public const LATIN_SMALL_LETTER_I_WITH_OGONEK = "\u{012F}"; public const LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE = "\u{0130}"; public const LATIN_SMALL_LETTER_DOTLESS_I = "\u{0131}"; public const LATIN_CAPITAL_LIGATURE_IJ = "\u{0132}"; public const LATIN_SMALL_LIGATURE_IJ = "\u{0133}"; public const LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX = "\u{0134}"; public const LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX = "\u{0135}"; public const LATIN_CAPITAL_LETTER_K_WITH_CEDILLA = "\u{0136}"; public const LATIN_SMALL_LETTER_K_WITH_CEDILLA = "\u{0137}"; public const LATIN_SMALL_LETTER_KRA = "\u{0138}"; public const LATIN_CAPITAL_LETTER_L_WITH_ACUTE = "\u{0139}"; public const LATIN_SMALL_LETTER_L_WITH_ACUTE = "\u{013A}"; public const LATIN_CAPITAL_LETTER_L_WITH_CEDILLA = "\u{013B}"; public const LATIN_SMALL_LETTER_L_WITH_CEDILLA = "\u{013C}"; public const LATIN_CAPITAL_LETTER_L_WITH_CARON = "\u{013D}"; public const LATIN_SMALL_LETTER_L_WITH_CARON = "\u{013E}"; public const LATIN_CAPITAL_LETTER_L_WITH_MIDDLE_DOT = "\u{013F}"; public const LATIN_SMALL_LETTER_L_WITH_MIDDLE_DOT = "\u{0140}"; public const LATIN_CAPITAL_LETTER_L_WITH_STROKE = "\u{0141}"; public const LATIN_SMALL_LETTER_L_WITH_STROKE = "\u{0142}"; public const LATIN_CAPITAL_LETTER_N_WITH_ACUTE = "\u{0143}"; public const LATIN_SMALL_LETTER_N_WITH_ACUTE = "\u{0144}"; public const LATIN_CAPITAL_LETTER_N_WITH_CEDILLA = "\u{0145}"; public const LATIN_SMALL_LETTER_N_WITH_CEDILLA = "\u{0146}"; public const LATIN_CAPITAL_LETTER_N_WITH_CARON = "\u{0147}"; public const LATIN_SMALL_LETTER_N_WITH_CARON = "\u{0148}"; public const LATIN_SMALL_LETTER_N_PRECEDED_BY_APOSTROPHE = "\u{0149}"; public const LATIN_CAPITAL_LETTER_ENG = "\u{014A}"; public const LATIN_SMALL_LETTER_ENG = "\u{014B}"; public const LATIN_CAPITAL_LETTER_O_WITH_MACRON = "\u{014C}"; public const LATIN_SMALL_LETTER_O_WITH_MACRON = "\u{014D}"; public const LATIN_CAPITAL_LETTER_O_WITH_BREVE = "\u{014E}"; public const LATIN_SMALL_LETTER_O_WITH_BREVE = "\u{014F}"; public const LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE = "\u{0150}"; public const LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE = "\u{0151}"; public const LATIN_CAPITAL_LIGATURE_OE = "\u{0152}"; public const LATIN_SMALL_LIGATURE_OE = "\u{0153}"; public const LATIN_CAPITAL_LETTER_R_WITH_ACUTE = "\u{0154}"; public const LATIN_SMALL_LETTER_R_WITH_ACUTE = "\u{0155}"; public const LATIN_CAPITAL_LETTER_R_WITH_CEDILLA = "\u{0156}"; public const LATIN_SMALL_LETTER_R_WITH_CEDILLA = "\u{0157}"; public const LATIN_CAPITAL_LETTER_R_WITH_CARON = "\u{0158}"; public const LATIN_SMALL_LETTER_R_WITH_CARON = "\u{0159}"; public const LATIN_CAPITAL_LETTER_S_WITH_ACUTE = "\u{015A}"; public const LATIN_SMALL_LETTER_S_WITH_ACUTE = "\u{015B}"; public const LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX = "\u{015C}"; public const LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX = "\u{015D}"; public const LATIN_CAPITAL_LETTER_S_WITH_CEDILLA = "\u{015E}"; public const LATIN_SMALL_LETTER_S_WITH_CEDILLA = "\u{015F}"; public const LATIN_CAPITAL_LETTER_S_WITH_CARON = "\u{0160}"; public const LATIN_SMALL_LETTER_S_WITH_CARON = "\u{0161}"; public const LATIN_CAPITAL_LETTER_T_WITH_CEDILLA = "\u{0162}"; public const LATIN_SMALL_LETTER_T_WITH_CEDILLA = "\u{0163}"; public const LATIN_CAPITAL_LETTER_T_WITH_CARON = "\u{0164}"; public const LATIN_SMALL_LETTER_T_WITH_CARON = "\u{0165}"; public const LATIN_CAPITAL_LETTER_T_WITH_STROKE = "\u{0166}"; public const LATIN_SMALL_LETTER_T_WITH_STROKE = "\u{0167}"; public const LATIN_CAPITAL_LETTER_U_WITH_TILDE = "\u{0168}"; public const LATIN_SMALL_LETTER_U_WITH_TILDE = "\u{0169}"; public const LATIN_CAPITAL_LETTER_U_WITH_MACRON = "\u{016A}"; public const LATIN_SMALL_LETTER_U_WITH_MACRON = "\u{016B}"; public const LATIN_CAPITAL_LETTER_U_WITH_BREVE = "\u{016C}"; public const LATIN_SMALL_LETTER_U_WITH_BREVE = "\u{016D}"; public const LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE = "\u{016E}"; public const LATIN_SMALL_LETTER_U_WITH_RING_ABOVE = "\u{016F}"; public const LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE = "\u{0170}"; public const LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE = "\u{0171}"; public const LATIN_CAPITAL_LETTER_U_WITH_OGONEK = "\u{0172}"; public const LATIN_SMALL_LETTER_U_WITH_OGONEK = "\u{0173}"; public const LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX = "\u{0174}"; public const LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX = "\u{0175}"; public const LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX = "\u{0176}"; public const LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX = "\u{0177}"; public const LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS = "\u{0178}"; public const LATIN_CAPITAL_LETTER_Z_WITH_ACUTE = "\u{0179}"; public const LATIN_SMALL_LETTER_Z_WITH_ACUTE = "\u{017A}"; public const LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE = "\u{017B}"; public const LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE = "\u{017C}"; public const LATIN_CAPITAL_LETTER_Z_WITH_CARON = "\u{017D}"; public const LATIN_SMALL_LETTER_Z_WITH_CARON = "\u{017E}"; public const LATIN_SMALL_LETTER_LONG_S = "\u{017F}"; public const LATIN_SMALL_LETTER_B_WITH_STROKE = "\u{0180}"; public const LATIN_CAPITAL_LETTER_B_WITH_HOOK = "\u{0181}"; public const LATIN_CAPITAL_LETTER_B_WITH_TOPBAR = "\u{0182}"; public const LATIN_SMALL_LETTER_B_WITH_TOPBAR = "\u{0183}"; public const LATIN_CAPITAL_LETTER_F_WITH_HOOK = "\u{0191}"; public const LATIN_SMALL_LETTER_F_WITH_HOOK = "\u{0192}"; public const LATIN_SMALL_LETTER_O_WITH_HORN = "\u{01A1}"; public const LATIN_CAPITAL_LETTER_O_WITH_HORN = "\u{01A0}"; public const LATIN_CAPITAL_LETTER_U_WITH_HORN = "\u{01AF}"; public const LATIN_SMALL_LETTER_U_WITH_HORN = "\u{01B0}"; public const LATIN_CAPITAL_LETTER_A_WITH_CARON = "\u{01CD}"; public const LATIN_SMALL_LETTER_A_WITH_CARON = "\u{01CE}"; public const LATIN_CAPITAL_LETTER_I_WITH_CARON = "\u{01CF}"; public const LATIN_SMALL_LETTER_I_WITH_CARON = "\u{01D0}"; public const LATIN_CAPITAL_LETTER_O_WITH_CARON = "\u{01D1}"; public const LATIN_SMALL_LETTER_O_WITH_CARON = "\u{01D2}"; public const LATIN_CAPITAL_LETTER_U_WITH_CARON = "\u{01D3}"; public const LATIN_SMALL_LETTER_U_WITH_CARON = "\u{01D4}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_MACRON = "\u{01D5}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_MACRON = "\u{01D6}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_ACUTE = "\u{01D7}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_ACUTE = "\u{01D8}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_CARON = "\u{01D9}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_CARON = "\u{01DA}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_GRAVE = "\u{01DB}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_GRAVE = "\u{01DC}"; public const LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS_AND_MACRON = "\u{01DE}"; public const LATIN_SMALL_LETTER_A_WITH_DIAERESIS_AND_MACRON = "\u{01DF}"; public const LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON = "\u{01E0}"; public const LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON = "\u{01E1}"; public const LATIN_CAPITAL_LETTER_AE_WITH_MACRON = "\u{01E2}"; public const LATIN_SMALL_LETTER_AE_WITH_MACRON = "\u{01E3}"; public const LATIN_CAPITAL_LETTER_G_WITH_CARON = "\u{01E6}"; public const LATIN_SMALL_LETTER_G_WITH_CARON = "\u{01E7}"; public const LATIN_CAPITAL_LETTER_K_WITH_CARON = "\u{01E8}"; public const LATIN_SMALL_LETTER_K_WITH_CARON = "\u{01E9}"; public const LATIN_CAPITAL_LETTER_O_WITH_OGONEK = "\u{01EA}"; public const LATIN_SMALL_LETTER_O_WITH_OGONEK = "\u{01EB}"; public const LATIN_CAPITAL_LETTER_O_WITH_OGONEK_AND_MACRON = "\u{01EC}"; public const LATIN_SMALL_LETTER_O_WITH_OGONEK_AND_MACRON = "\u{01ED}"; public const LATIN_SMALL_LETTER_J_WITH_CARON = "\u{01F0}"; public const LATIN_CAPITAL_LETTER_G_WITH_ACUTE = "\u{01F4}"; public const LATIN_SMALL_LETTER_G_WITH_ACUTE = "\u{01F5}"; public const LATIN_CAPITAL_LETTER_N_WITH_GRAVE = "\u{01F8}"; public const LATIN_SMALL_LETTER_N_WITH_GRAVE = "\u{01F9}"; public const LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE = "\u{01FA}"; public const LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE = "\u{01FB}"; public const LATIN_CAPITAL_LETTER_AE_WITH_ACUTE = "\u{01FC}"; public const LATIN_SMALL_LETTER_AE_WITH_ACUTE = "\u{01FD}"; public const LATIN_CAPITAL_LETTER_O_WITH_STROKE_AND_ACUTE = "\u{01FE}"; public const LATIN_SMALL_LETTER_O_WITH_STROKE_AND_ACUTE = "\u{01FF}"; public const LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW = "\u{0218}"; public const LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW = "\u{0219}"; public const LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW = "\u{021A}"; public const LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW = "\u{021B}"; public const LATIN_CAPITAL_LETTER_H_WITH_CARON = "\u{021E}"; public const LATIN_SMALL_LETTER_H_WITH_CARON = "\u{021F}"; public const LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE = "\u{0226}"; public const LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE = "\u{0227}"; public const LATIN_CAPITAL_LETTER_E_WITH_CEDILLA = "\u{0228}"; public const LATIN_SMALL_LETTER_E_WITH_CEDILLA = "\u{0229}"; public const LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS_AND_MACRON = "\u{022A}"; public const LATIN_SMALL_LETTER_O_WITH_DIAERESIS_AND_MACRON = "\u{022B}"; public const LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_MACRON = "\u{022C}"; public const LATIN_SMALL_LETTER_O_WITH_TILDE_AND_MACRON = "\u{022D}"; public const LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE = "\u{022E}"; public const LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE = "\u{022F}"; public const LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON = "\u{0230}"; public const LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON = "\u{0231}"; public const LATIN_CAPITAL_LETTER_Y_WITH_MACRON = "\u{0232}"; public const LATIN_SMALL_LETTER_Y_WITH_MACRON = "\u{0233}"; public const MODIFIER_LETTER_PRIME = "\u{02B9}"; public const MODIFIER_LETTER_DOUBLE_PRIME = "\u{02BA}"; public const MODIFIER_LETTER_TURNED_COMMA = "\u{02BB}"; public const MODIFIER_LETTER_APOSTROPHE = "\u{02BC}"; public const MODIFIER_LETTER_CIRCUMFLEX_ACCENT = "\u{02C6}"; public const CARON = "\u{02C7}"; public const BREVE = "\u{02D8}"; public const DOT_ABOVE = "\u{02D9}"; public const RING_ABOVE = "\u{02DA}"; public const OGONEK = "\u{02DB}"; public const SMALL_TILDE = "\u{02DC}"; public const DOUBLE_ACUTE_ACCENT = "\u{02DD}"; public const COMBINING_GRAVE_ACCENT = "\u{0300}"; public const COMBINING_ACUTE_ACCENT = "\u{0301}"; public const COMBINING_CIRCUMFLEX_ACCENT = "\u{0302}"; public const COMBINING_TILDE = "\u{0303}"; public const COMBINING_MACRON = "\u{0304}"; public const COMBINING_OVERLINE = "\u{0305}"; public const COMBINING_BREVE = "\u{0306}"; public const COMBINING_DOT_ABOVE = "\u{0307}"; public const COMBINING_DIAERESIS = "\u{0308}"; public const COMBINING_HOOK_ABOVE = "\u{0309}"; public const COMBINING_RING_ABOVE = "\u{030A}"; public const COMBINING_DOUBLE_ACUTE_ACCENT = "\u{030B}"; public const COMBINING_CARON = "\u{030C}"; public const COMBINING_CANDRABINDU = "\u{0310}"; public const COMBINING_COMMA_ABOVE = "\u{0313}"; public const COMBINING_COMMA_ABOVE_RIGHT = "\u{0315}"; public const COMBINING_HORN = "\u{031B}"; public const COMBINING_LEFT_HALF_RING_BELOW = "\u{031C}"; public const COMBINING_DOT_BELOW = "\u{0323}"; public const COMBINING_DIAERESIS_BELOW = "\u{0324}"; public const COMBINING_RING_BELOW = "\u{0325}"; public const COMBINING_COMMA_BELOW = "\u{0326}"; public const COMBINING_CEDILLA = "\u{0327}"; public const COMBINING_OGONEK = "\u{0328}"; public const COMBINING_BRIDGE_BELOW = "\u{032A}"; public const COMBINING_BREVE_BELOW = "\u{032E}"; public const COMBINING_LOW_LINE = "\u{0332}"; public const COMBINING_DOUBLE_LOW_LINE = "\u{0333}"; public const COMBINING_SHORT_STROKE_OVERLAY = "\u{0335}"; public const COMBINING_LONG_STROKE_OVERLAY = "\u{0336}"; public const COMBINING_SHORT_SOLIDUS_OVERLAY = "\u{0338}"; public const COMBINING_LONG_SOLIDUS_OVERLAY = "\u{0338}"; public const COMBINING_DOUBLE_TILDE = "\u{0360}"; public const COMBINING_DOUBLE_INVERTED_BREVE = "\u{0361}"; public const GREEK_CAPITAL_LETTER_GAMMA = "\u{0393}"; public const GREEK_CAPITAL_LETTER_THETA = "\u{0398}"; public const GREEK_CAPITAL_LETTER_SIGMA = "\u{03A3}"; public const GREEK_CAPITAL_LETTER_PHI = "\u{03A6}"; public const GREEK_CAPITAL_LETTER_OMEGA = "\u{03A9}"; public const GREEK_SMALL_LETTER_ALPHA = "\u{03B1}"; public const GREEK_SMALL_LETTER_DELTA = "\u{03B4}"; public const GREEK_SMALL_LETTER_EPSILON = "\u{03B5}"; public const GREEK_SMALL_LETTER_PI = "\u{03C0}"; public const GREEK_SMALL_LETTER_SIGMA = "\u{03C3}"; public const GREEK_SMALL_LETTER_TAU = "\u{03C4}"; public const GREEK_SMALL_LETTER_PHI = "\u{03C6}"; public const CYRILLIC_CAPITAL_LETTER_IO = "\u{0401}"; public const CYRILLIC_CAPITAL_LETTER_DJE = "\u{0402}"; public const CYRILLIC_CAPITAL_LETTER_GJE = "\u{0403}"; public const CYRILLIC_CAPITAL_LETTER_UKRANIAN_IE = "\u{0404}"; public const CYRILLIC_CAPITAL_LETTER_DZE = "\u{0405}"; public const CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I = "\u{0406}"; public const CYRILLIC_CAPITAL_LETTER_YI = "\u{0407}"; public const CYRILLIC_CAPITAL_LETTER_JE = "\u{0408}"; public const CYRILLIC_CAPITAL_LETTER_LJE = "\u{0409}"; public const CYRILLIC_CAPITAL_LETTER_NJE = "\u{040A}"; public const CYRILLIC_CAPITAL_LETTER_TSHE = "\u{040B}"; public const CYRILLIC_CAPITAL_LETTER_KJE = "\u{040C}"; public const CYRILLIC_CAPITAL_LETTER_SHORT_U = "\u{040E}"; public const CYRILLIC_CAPITAL_LETTER_DZHE = "\u{040F}"; public const CYRILLIC_CAPITAL_LETTER_A = "\u{0410}"; public const CYRILLIC_CAPITAL_LETTER_BE = "\u{0411}"; public const CYRILLIC_CAPITAL_LETTER_VE = "\u{0412}"; public const CYRILLIC_CAPITAL_LETTER_GHE = "\u{0413}"; public const CYRILLIC_CAPITAL_LETTER_DE = "\u{0414}"; public const CYRILLIC_CAPITAL_LETTER_IE = "\u{0415}"; public const CYRILLIC_CAPITAL_LETTER_ZHE = "\u{0416}"; public const CYRILLIC_CAPITAL_LETTER_ZE = "\u{0417}"; public const CYRILLIC_CAPITAL_LETTER_I = "\u{0418}"; public const CYRILLIC_CAPITAL_LETTER_SHORT_I = "\u{0419}"; public const CYRILLIC_CAPITAL_LETTER_KA = "\u{041A}"; public const CYRILLIC_CAPITAL_LETTER_EL = "\u{041B}"; public const CYRILLIC_CAPITAL_LETTER_EM = "\u{041C}"; public const CYRILLIC_CAPITAL_LETTER_EN = "\u{041D}"; public const CYRILLIC_CAPITAL_LETTER_O = "\u{041E}"; public const CYRILLIC_CAPITAL_LETTER_PE = "\u{041F}"; public const CYRILLIC_CAPITAL_LETTER_ER = "\u{0420}"; public const CYRILLIC_CAPITAL_LETTER_ES = "\u{0421}"; public const CYRILLIC_CAPITAL_LETTER_TE = "\u{0422}"; public const CYRILLIC_CAPITAL_LETTER_U = "\u{0423}"; public const CYRILLIC_CAPITAL_LETTER_EF = "\u{0424}"; public const CYRILLIC_CAPITAL_LETTER_HA = "\u{0425}"; public const CYRILLIC_CAPITAL_LETTER_TSE = "\u{0426}"; public const CYRILLIC_CAPITAL_LETTER_CHE = "\u{0427}"; public const CYRILLIC_CAPITAL_LETTER_SHA = "\u{0428}"; public const CYRILLIC_CAPITAL_LETTER_SHCHA = "\u{0429}"; public const CYRILLIC_CAPITAL_LETTER_HARD_SIGN = "\u{042A}"; public const CYRILLIC_CAPITAL_LETTER_YERU = "\u{042B}"; public const CYRILLIC_CAPITAL_LETTER_SOFT_SIGN = "\u{042C}"; public const CYRILLIC_CAPITAL_LETTER_E = "\u{042D}"; public const CYRILLIC_CAPITAL_LETTER_YU = "\u{042E}"; public const CYRILLIC_CAPITAL_LETTER_YA = "\u{042F}"; public const CYRILLIC_SMALL_LETTER_A = "\u{0430}"; public const CYRILLIC_SMALL_LETTER_BE = "\u{0431}"; public const CYRILLIC_SMALL_LETTER_VE = "\u{0432}"; public const CYRILLIC_SMALL_LETTER_GHE = "\u{0433}"; public const CYRILLIC_SMALL_LETTER_DE = "\u{0434}"; public const CYRILLIC_SMALL_LETTER_IE = "\u{0435}"; public const CYRILLIC_SMALL_LETTER_ZHE = "\u{0436}"; public const CYRILLIC_SMALL_LETTER_ZE = "\u{0437}"; public const CYRILLIC_SMALL_LETTER_I = "\u{0438}"; public const CYRILLIC_SMALL_LETTER_SHORT_I = "\u{0439}"; public const CYRILLIC_SMALL_LETTER_KA = "\u{043A}"; public const CYRILLIC_SMALL_LETTER_EL = "\u{043B}"; public const CYRILLIC_SMALL_LETTER_EM = "\u{043C}"; public const CYRILLIC_SMALL_LETTER_EN = "\u{043D}"; public const CYRILLIC_SMALL_LETTER_O = "\u{043E}"; public const CYRILLIC_SMALL_LETTER_PE = "\u{043F}"; public const CYRILLIC_SMALL_LETTER_ER = "\u{0440}"; public const CYRILLIC_SMALL_LETTER_ES = "\u{0441}"; public const CYRILLIC_SMALL_LETTER_TE = "\u{0442}"; public const CYRILLIC_SMALL_LETTER_U = "\u{0443}"; public const CYRILLIC_SMALL_LETTER_EF = "\u{0444}"; public const CYRILLIC_SMALL_LETTER_HA = "\u{0445}"; public const CYRILLIC_SMALL_LETTER_TSE = "\u{0446}"; public const CYRILLIC_SMALL_LETTER_CHE = "\u{0447}"; public const CYRILLIC_SMALL_LETTER_SHA = "\u{0448}"; public const CYRILLIC_SMALL_LETTER_SHCHA = "\u{0449}"; public const CYRILLIC_SMALL_LETTER_HARD_SIGN = "\u{044A}"; public const CYRILLIC_SMALL_LETTER_YERU = "\u{044B}"; public const CYRILLIC_SMALL_LETTER_SOFT_SIGN = "\u{044C}"; public const CYRILLIC_SMALL_LETTER_E = "\u{044D}"; public const CYRILLIC_SMALL_LETTER_YU = "\u{044E}"; public const CYRILLIC_SMALL_LETTER_YA = "\u{044F}"; public const CYRILLIC_SMALL_LETTER_IO = "\u{0451}"; public const CYRILLIC_SMALL_LETTER_DJE = "\u{0452}"; public const CYRILLIC_SMALL_LETTER_GJE = "\u{0453}"; public const CYRILLIC_SMALL_LETTER_UKRANIAN_IE = "\u{0454}"; public const CYRILLIC_SMALL_LETTER_DZE = "\u{0455}"; public const CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I = "\u{0456}"; public const CYRILLIC_SMALL_LETTER_YI = "\u{0457}"; public const CYRILLIC_SMALL_LETTER_JE = "\u{0458}"; public const CYRILLIC_SMALL_LETTER_LJE = "\u{0459}"; public const CYRILLIC_SMALL_LETTER_NJE = "\u{045A}"; public const CYRILLIC_SMALL_LETTER_TSHE = "\u{045B}"; public const CYRILLIC_SMALL_LETTER_KJE = "\u{045C}"; public const CYRILLIC_SMALL_LETTER_SHORT_U = "\u{045E}"; public const CYRILLIC_SMALL_LETTER_DZHE = "\u{045F}"; public const CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN = "\u{0490}"; public const CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN = "\u{0491}"; public const ARABIC_LETTER_HAMZA = "\u{0621}"; public const ARABIC_LETTER_ALEF = "\u{0627}"; public const ARABIC_LETTER_BEH = "\u{0628}"; public const ARABIC_LETTER_TEH_MARBUTA = "\u{0629}"; public const ARABIC_LETTER_TEH = "\u{062A}"; public const ARABIC_LETTER_THEH = "\u{062B}"; public const ARABIC_LETTER_JEEM = "\u{062C}"; public const ARABIC_LETTER_HAH = "\u{062D}"; public const ARABIC_LETTER_KHAH = "\u{062E}"; public const ARABIC_LETTER_DAL = "\u{062F}"; public const ARABIC_LETTER_THAL = "\u{0630}"; public const ARABIC_LETTER_REH = "\u{0631}"; public const ARABIC_LETTER_ZAIN = "\u{0632}"; public const ARABIC_LETTER_SEEN = "\u{0633}"; public const ARABIC_LETTER_SHEEN = "\u{0634}"; public const ARABIC_LETTER_SAD = "\u{0635}"; public const ARABIC_LETTER_DAD = "\u{0636}"; public const ARABIC_LETTER_TAH = "\u{0637}"; public const ARABIC_LETTER_ZAH = "\u{0638}"; public const ARABIC_LETTER_AIN = "\u{0639}"; public const ARABIC_LETTER_GHAIN = "\u{063A}"; public const ARABIC_LETTER_FEH = "\u{0641}"; public const ARABIC_LETTER_QAF = "\u{0642}"; public const ARABIC_LETTER_KAF = "\u{0643}"; public const ARABIC_LETTER_LAM = "\u{0644}"; public const ARABIC_LETTER_MEEM = "\u{0645}"; public const ARABIC_LETTER_NOON = "\u{0646}"; public const ARABIC_LETTER_HEH = "\u{0647}"; public const ARABIC_LETTER_WAW = "\u{0648}"; public const ARABIC_LETTER_ALEF_MAKSURA = "\u{0649}"; public const ARABIC_LETTER_YEH = "\u{064A}"; public const LATIN_CAPITAL_LETTER_A_WITH_RING_BELOW = "\u{1E00}"; public const LATIN_SMALL_LETTER_A_WITH_RING_BELOW = "\u{1E01}"; public const LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE = "\u{1E02}"; public const LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE = "\u{1E03}"; public const LATIN_CAPITAL_LETTER_B_WITH_DOT_BELOW = "\u{1E04}"; public const LATIN_SMALL_LETTER_B_WITH_DOT_BELOW = "\u{1E05}"; public const LATIN_CAPITAL_LETTER_C_WITH_CEDILLA_AND_ACUTE = "\u{1E08}"; public const LATIN_SMALL_LETTER_C_WITH_CEDILLA_AND_ACUTE = "\u{1E09}"; public const LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE = "\u{1E0A}"; public const LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE = "\u{1E0B}"; public const LATIN_CAPITAL_LETTER_D_WITH_DOT_BELOW = "\u{1E0C}"; public const LATIN_SMALL_LETTER_D_WITH_DOT_BELOW = "\u{1E0D}"; public const LATIN_CAPITAL_LETTER_SHARP_S = "\u{1E9E}"; public const LATIN_CAPITAL_LETTER_D_WITH_CEDILLA = "\u{1E10}"; public const LATIN_SMALL_LETTER_D_WITH_CEDILLA = "\u{1E11}"; public const LATIN_CAPITAL_LETTER_E_WITH_MACRON_AND_GRAVE = "\u{1E14}"; public const LATIN_SMALL_LETTER_E_WITH_MACRON_AND_GRAVE = "\u{1E15}"; public const LATIN_CAPITAL_LETTER_E_WITH_MACRON_AND_ACUTE = "\u{1E16}"; public const LATIN_SMALL_LETTER_E_WITH_MACRON_AND_ACUTE = "\u{1E17}"; public const LATIN_CAPITAL_LETTER_E_WITH_CEDILLA_AND_BREVE = "\u{1E1C}"; public const LATIN_SMALL_LETTER_E_WITH_CEDILLA_AND_BREVE = "\u{1E1D}"; public const LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE = "\u{1E1E}"; public const LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE = "\u{1E1F}"; public const LATIN_CAPITAL_LETTER_G_WITH_MACRON = "\u{1E20}"; public const LATIN_SMALL_LETTER_G_WITH_MACRON = "\u{1E21}"; public const LATIN_CAPITAL_LETTER_H_WITH_DOT_ABOVE = "\u{1E22}"; public const LATIN_SMALL_LETTER_H_WITH_DOT_ABOVE = "\u{1E23}"; public const LATIN_CAPITAL_LETTER_H_WITH_DOT_BELOW = "\u{1E24}"; public const LATIN_SMALL_LETTER_H_WITH_DOT_BELOW = "\u{1E25}"; public const LATIN_CAPITAL_LETTER_H_WITH_DIAERESIS = "\u{1E26}"; public const LATIN_SMALL_LETTER_H_WITH_DIAERESIS = "\u{1E27}"; public const LATIN_CAPITAL_LETTER_H_WITH_CEDILLA = "\u{1E28}"; public const LATIN_SMALL_LETTER_H_WITH_CEDILLA = "\u{1E29}"; public const LATIN_CAPITAL_LETTER_H_WITH_BREVE_BELOW = "\u{1E2A}"; public const LATIN_SMALL_LETTER_H_WITH_BREVE_BELOW = "\u{1E2B}"; public const LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS_AND_ACUTE = "\u{1E2E}"; public const LATIN_SMALL_LETTER_I_WITH_DIAERESIS_AND_ACUTE = "\u{1E2F}"; public const LATIN_CAPITAL_LETTER_K_WITH_ACUTE = "\u{1E30}"; public const LATIN_SMALL_LETTER_K_WITH_ACUTE = "\u{1E31}"; public const LATIN_CAPITAL_LETTER_K_WITH_DOT_BELOW = "\u{1E32}"; public const LATIN_SMALL_LETTER_K_WITH_DOT_BELOW = "\u{1E33}"; public const LATIN_CAPITAL_LETTER_L_WITH_DOT_BELOW = "\u{1E36}"; public const LATIN_SMALL_LETTER_L_WITH_DOT_BELOW = "\u{1E37}"; public const LATIN_CAPITAL_LETTER_L_WITH_DOT_BELOW_AND_MACRON = "\u{1E38}"; public const LATIN_SMALL_LETTER_L_WITH_DOT_BELOW_AND_MACRON = "\u{1E39}"; public const LATIN_CAPITAL_LETTER_M_WITH_ACUTE = "\u{1E3E}"; public const LATIN_SMALL_LETTER_M_WITH_ACUTE = "\u{1E3F}"; public const LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE = "\u{1E40}"; public const LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE = "\u{1E41}"; public const LATIN_CAPITAL_LETTER_M_WITH_DOT_BELOW = "\u{1E42}"; public const LATIN_SMALL_LETTER_M_WITH_DOT_BELOW = "\u{1E43}"; public const LATIN_CAPITAL_LETTER_N_WITH_DOT_ABOVE = "\u{1E44}"; public const LATIN_SMALL_LETTER_N_WITH_DOT_ABOVE = "\u{1E45}"; public const LATIN_CAPITAL_LETTER_N_WITH_DOT_BELOW = "\u{1E46}"; public const LATIN_SMALL_LETTER_N_WITH_DOT_BELOW = "\u{1E47}"; public const LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_ACUTE = "\u{1E4C}"; public const LATIN_SMALL_LETTER_O_WITH_TILDE_AND_ACUTE = "\u{1E4D}"; public const LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_DIAERESIS = "\u{1E4E}"; public const LATIN_SMALL_LETTER_O_WITH_TILDE_AND_DIAERESIS = "\u{1E4F}"; public const LATIN_CAPITAL_LETTER_O_WITH_MACRON_AND_GRAVE = "\u{1E50}"; public const LATIN_SMALL_LETTER_O_WITH_MACRON_AND_GRAVE = "\u{1E51}"; public const LATIN_CAPITAL_LETTER_O_WITH_MACRON_AND_ACUTE = "\u{1E52}"; public const LATIN_SMALL_LETTER_O_WITH_MACRON_AND_ACUTE = "\u{1E53}"; public const LATIN_CAPITAL_LETTER_P_WITH_ACUTE = "\u{1E54}"; public const LATIN_SMALL_LETTER_P_WITH_ACUTE = "\u{1E55}"; public const LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE = "\u{1E56}"; public const LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE = "\u{1E57}"; public const LATIN_CAPITAL_LETTER_R_WITH_DOT_ABOVE = "\u{1E58}"; public const LATIN_SMALL_LETTER_R_WITH_DOT_ABOVE = "\u{1E59}"; public const LATIN_CAPITAL_LETTER_R_WITH_DOT_BELOW = "\u{1E5A}"; public const LATIN_SMALL_LETTER_R_WITH_DOT_BELOW = "\u{1E5B}"; public const LATIN_CAPITAL_LETTER_R_WITH_DOT_BELOW_AND_MACRON = "\u{1E5C}"; public const LATIN_SMALL_LETTER_R_WITH_DOT_BELOW_AND_MACRON = "\u{1E5D}"; public const LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE = "\u{1E60}"; public const LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE = "\u{1E61}"; public const LATIN_CAPITAL_LETTER_S_WITH_DOT_BELOW = "\u{1E62}"; public const LATIN_SMALL_LETTER_S_WITH_DOT_BELOW = "\u{1E63}"; public const LATIN_CAPITAL_LETTER_S_WITH_ACUTE_AND_DOT_ABOVE = "\u{1E64}"; public const LATIN_SMALL_LETTER_S_WITH_ACUTE_AND_DOT_ABOVE = "\u{1E65}"; public const LATIN_CAPITAL_LETTER_S_WITH_CARON_AND_DOT_ABOVE = "\u{1E66}"; public const LATIN_SMALL_LETTER_S_WITH_CARON_AND_DOT_ABOVE = "\u{1E67}"; public const LATIN_CAPITAL_LETTER_S_WITH_DOT_BELOW_AND_DOT_ABOVE = "\u{1E68}"; public const LATIN_SMALL_LETTER_S_WITH_DOT_BELOW_AND_DOT_ABOVE = "\u{1E69}"; public const LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE = "\u{1E6A}"; public const LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE = "\u{1E6B}"; public const LATIN_CAPITAL_LETTER_T_WITH_DOT_BELOW = "\u{1E6C}"; public const LATIN_SMALL_LETTER_T_WITH_DOT_BELOW = "\u{1E6D}"; public const LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_BELOW = "\u{1E72}"; public const LATIN_SMALL_LETTER_U_WITH_DIAERESIS_BELOW = "\u{1E73}"; public const LATIN_CAPITAL_LETTER_U_WITH_TILDE_AND_ACUTE = "\u{1E78}"; public const LATIN_SMALL_LETTER_U_WITH_TILDE_AND_ACUTE = "\u{1E79}"; public const LATIN_CAPITAL_LETTER_U_WITH_MACRON_AND_DIAERESIS = "\u{1E7A}"; public const LATIN_SMALL_LETTER_U_WITH_MACRON_AND_DIAERESIS = "\u{1E7B}"; public const LATIN_CAPITAL_LETTER_V_WITH_TILDE = "\u{1E7C}"; public const LATIN_SMALL_LETTER_V_WITH_TILDE = "\u{1E7D}"; public const LATIN_CAPITAL_LETTER_V_WITH_DOT_BELOW = "\u{1E7E}"; public const LATIN_SMALL_LETTER_V_WITH_DOT_BELOW = "\u{1E7F}"; public const LATIN_CAPITAL_LETTER_W_WITH_GRAVE = "\u{1E80}"; public const LATIN_SMALL_LETTER_W_WITH_GRAVE = "\u{1E81}"; public const LATIN_CAPITAL_LETTER_W_WITH_ACUTE = "\u{1E82}"; public const LATIN_SMALL_LETTER_W_WITH_ACUTE = "\u{1E83}"; public const LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS = "\u{1E84}"; public const LATIN_SMALL_LETTER_W_WITH_DIAERESIS = "\u{1E85}"; public const LATIN_CAPITAL_LETTER_W_WITH_DOT_ABOVE = "\u{1E86}"; public const LATIN_SMALL_LETTER_W_WITH_DOT_ABOVE = "\u{1E87}"; public const LATIN_CAPITAL_LETTER_W_WITH_DOT_BELOW = "\u{1E88}"; public const LATIN_SMALL_LETTER_W_WITH_DOT_BELOW = "\u{1E89}"; public const LATIN_CAPITAL_LETTER_X_WITH_DOT_ABOVE = "\u{1E8A}"; public const LATIN_SMALL_LETTER_X_WITH_DOT_ABOVE = "\u{1E8B}"; public const LATIN_CAPITAL_LETTER_X_WITH_DIAERESIS = "\u{1E8C}"; public const LATIN_SMALL_LETTER_X_WITH_DIAERESIS = "\u{1E8D}"; public const LATIN_CAPITAL_LETTER_Y_WITH_DOT_ABOVE = "\u{1E8E}"; public const LATIN_SMALL_LETTER_Y_WITH_DOT_ABOVE = "\u{1E8F}"; public const LATIN_CAPITAL_LETTER_Z_WITH_CIRCUMFLEX = "\u{1E90}"; public const LATIN_SMALL_LETTER_Z_WITH_CIRCUMFLEX = "\u{1E91}"; public const LATIN_CAPITAL_LETTER_Z_WITH_DOT_BELOW = "\u{1E92}"; public const LATIN_SMALL_LETTER_Z_WITH_DOT_BELOW = "\u{1E93}"; public const LATIN_SMALL_LETTER_T_WITH_DIAERESIS = "\u{1E97}"; public const LATIN_SMALL_LETTER_W_WITH_RING_ABOVE = "\u{1E98}"; public const LATIN_SMALL_LETTER_Y_WITH_RING_ABOVE = "\u{1E99}"; public const LATIN_CAPITAL_LETTER_A_WITH_DOT_BELOW = "\u{1EA0}"; public const LATIN_SMALL_LETTER_A_WITH_DOT_BELOW = "\u{1EA1}"; public const LATIN_CAPITAL_LETTER_A_WITH_HOOK_ABOVE = "\u{1EA2}"; public const LATIN_SMALL_LETTER_A_WITH_HOOK_ABOVE = "\u{1EA3}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1EA4}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1EA5}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1EA6}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1EA7}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1EA8}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1EA9}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_TILDE = "\u{1EAA}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_TILDE = "\u{1EAB}"; public const LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1EAC}"; public const LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1EAD}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_ACUTE = "\u{1EAE}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE_AND_ACUTE = "\u{1EAF}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_GRAVE = "\u{1EB0}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE_AND_GRAVE = "\u{1EB1}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_HOOK_ABOVE = "\u{1EB2}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE_AND_HOOK_ABOVE = "\u{1EB3}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_TILDE = "\u{1EB4}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE_AND_TILDE = "\u{1EB5}"; public const LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_DOT_BELOW = "\u{1EB6}"; public const LATIN_SMALL_LETTER_A_WITH_BREVE_AND_DOT_BELOW = "\u{1EB7}"; public const LATIN_CAPITAL_LETTER_E_WITH_DOT_BELOW = "\u{1EB8}"; public const LATIN_SMALL_LETTER_E_WITH_DOT_BELOW = "\u{1EB9}"; public const LATIN_CAPITAL_LETTER_E_WITH_HOOK_ABOVE = "\u{1EBA}"; public const LATIN_SMALL_LETTER_E_WITH_HOOK_ABOVE = "\u{1EBB}"; public const LATIN_CAPITAL_LETTER_E_WITH_TILDE = "\u{1EBC}"; public const LATIN_SMALL_LETTER_E_WITH_TILDE = "\u{1EBD}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1EBE}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1EBF}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1EC0}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1EC1}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1EC2}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1EC3}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_TILDE = "\u{1EC4}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_TILDE = "\u{1EC5}"; public const LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1EC6}"; public const LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1EC7}"; public const LATIN_CAPITAL_LETTER_I_WITH_HOOK_ABOVE = "\u{1EC8}"; public const LATIN_SMALL_LETTER_I_WITH_HOOK_ABOVE = "\u{1EC9}"; public const LATIN_CAPITAL_LETTER_I_WITH_DOT_BELOW = "\u{1ECA}"; public const LATIN_SMALL_LETTER_I_WITH_DOT_BELOW = "\u{1ECB}"; public const LATIN_CAPITAL_LETTER_O_WITH_DOT_BELOW = "\u{1ECC}"; public const LATIN_SMALL_LETTER_O_WITH_DOT_BELOW = "\u{1ECD}"; public const LATIN_CAPITAL_LETTER_O_WITH_HOOK_ABOVE = "\u{1ECE}"; public const LATIN_SMALL_LETTER_O_WITH_HOOK_ABOVE = "\u{1ECF}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1ED0}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_ACUTE = "\u{1ED1}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1ED2}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_GRAVE = "\u{1ED3}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1ED4}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_HOOK_ABOVE = "\u{1ED5}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_TILDE = "\u{1ED6}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_TILDE = "\u{1ED7}"; public const LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1ED8}"; public const LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_DOT_BELOW = "\u{1ED9}"; public const LATIN_CAPITAL_LETTER_U_WITH_DOT_BELOW = "\u{1EE4}"; public const LATIN_SMALL_LETTER_U_WITH_DOT_BELOW = "\u{1EE5}"; public const LATIN_CAPITAL_LETTER_U_WITH_HOOK_ABOVE = "\u{1EE6}"; public const LATIN_SMALL_LETTER_U_WITH_HOOK_ABOVE = "\u{1EE7}"; public const LATIN_CAPITAL_LETTER_Y_WITH_GRAVE = "\u{1EF2}"; public const LATIN_SMALL_LETTER_Y_WITH_GRAVE = "\u{1EF3}"; public const LATIN_CAPITAL_LETTER_Y_WITH_DOT_BELOW = "\u{1EF4}"; public const LATIN_SMALL_LETTER_Y_WITH_DOT_BELOW = "\u{1EF5}"; public const LATIN_CAPITAL_LETTER_Y_WITH_HOOK_ABOVE = "\u{1EF6}"; public const LATIN_SMALL_LETTER_Y_WITH_HOOK_ABOVE = "\u{1EF7}"; public const LATIN_CAPITAL_LETTER_Y_WITH_TILDE = "\u{1EF8}"; public const LATIN_SMALL_LETTER_Y_WITH_TILDE = "\u{1EF9}"; public const ZERO_WIDTH_NON_JOINER = "\u{200C}"; public const ZERO_WIDTH_JOINER = "\u{200D}"; public const EN_DASH = "\u{2013}"; public const EM_DASH = "\u{2014}"; public const DOUBLE_LOW_LINE = "\u{2017}"; public const LEFT_SINGLE_QUOTATION_MARK = "\u{2018}"; public const RIGHT_SINGLE_QUOTATION_MARK = "\u{2019}"; public const SINGLE_LOW_9_QUOTATION_MARK = "\u{201A}"; public const LEFT_DOUBLE_QUOTATION_MARK = "\u{201C}"; public const RIGHT_DOUBLE_QUOTATION_MARK = "\u{201D}"; public const DOUBLE_LOW_9_QUOTATION_MARK = "\u{201E}"; public const DAGGER = "\u{2020}"; public const DOUBLE_DAGGER = "\u{2021}"; public const BULLET = "\u{2022}"; public const HORIZONTAL_ELLIPSIS = "\u{2026}"; public const PER_MILLE_SIGN = "\u{2030}"; public const SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK = "\u{2039}"; public const SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK = "\u{203A}"; public const FRACTION_SLASH = "\u{2044}"; public const SUPERSCRIPT_LATIN_SMALL_LETTER_N = "\u{207F}"; public const PESETA_SIGN = "\u{20A7}"; public const EURO_SIGN = "\u{20AC}"; public const SCRIPT_SMALL_L = "\u{2113}"; public const NUMERO_SIGN = "\u{2116}"; public const SOUND_RECORDING_COPYRIGHT = "\u{2117}"; public const TRADE_MARK_SIGN = "\u{2122}"; public const PARTIAL_DIFFERENTIAL = "\u{2202}"; public const INCREMENT = "\u{2206}"; public const N_ARY_PRODUCT = "\u{220F}"; public const N_ARY_SUMMATION = "\u{2211}"; public const BULLET_OPERATOR = "\u{2219}"; public const SQUARE_ROOT = "\u{221A}"; public const INFINITY = "\u{221E}"; public const INTERSECTION = "\u{2229}"; public const INTEGRAL = "\u{222B}"; public const ALMOST_EQUAL_TO = "\u{2248}"; public const NOT_EQUAL_TO = "\u{2260}"; public const IDENTICAL_TO = "\u{2261}"; public const LESS_THAN_OR_EQUAL_TO = "\u{2264}"; public const GREATER_THAN_OR_EQUAL_TO = "\u{2265}"; public const REVERSED_NOT_SIGN = "\u{2310}"; public const TOP_HALF_INTEGRAL = "\u{2320}"; public const BOTTOM_HALF_INTEGRAL = "\u{2321}"; public const BOX_DRAWINGS_LIGHT_HORIZONTAL = "\u{2500}"; public const BOX_DRAWINGS_LIGHT_VERTICAL = "\u{2502}"; public const BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT = "\u{250C}"; public const BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT = "\u{2510}"; public const BOX_DRAWINGS_LIGHT_UP_AND_LEFT = "\u{2518}"; public const BOX_DRAWINGS_LIGHT_UP_AND_RIGHT = "\u{2514}"; public const BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT = "\u{251C}"; public const BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT = "\u{2524}"; public const BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL = "\u{252C}"; public const BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL = "\u{2534}"; public const BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL = "\u{253C}"; public const BOX_DRAWINGS_DOUBLE_HORIZONTAL = "\u{2550}"; public const BOX_DRAWINGS_DOUBLE_VERTICAL = "\u{2551}"; public const BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE = "\u{2552}"; public const BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE = "\u{2553}"; public const BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT = "\u{2554}"; public const BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE = "\u{2555}"; public const BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE = "\u{2556}"; public const BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT = "\u{2557}"; public const BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE = "\u{2558}"; public const BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE = "\u{2559}"; public const BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT = "\u{255A}"; public const BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE = "\u{255B}"; public const BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE = "\u{255C}"; public const BOX_DRAWINGS_DOUBLE_UP_AND_LEFT = "\u{255D}"; public const BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE = "\u{255E}"; public const BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE = "\u{255F}"; public const BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT = "\u{2560}"; public const BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE = "\u{2561}"; public const BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE = "\u{2562}"; public const BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT = "\u{2563}"; public const BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE = "\u{2564}"; public const BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE = "\u{2565}"; public const BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL = "\u{2566}"; public const BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE = "\u{2567}"; public const BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE = "\u{2568}"; public const BOX_DRAWINGS_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL = "\u{2569}"; public const BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE = "\u{256A}"; public const BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE = "\u{256B}"; public const BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL = "\u{256C}"; public const UPPER_HALF_BLOCK = "\u{2580}"; public const LOWER_HALF_BLOCK = "\u{2584}"; public const FULL_BLOCK = "\u{2588}"; public const LEFT_HALF_BLOCK = "\u{258C}"; public const RIGHT_HALF_BLOCK = "\u{2590}"; public const LIGHT_SHADE = "\u{2591}"; public const MEDIUM_SHADE = "\u{2592}"; public const DARK_SHADE = "\u{2593}"; public const BLACK_SQUARE = "\u{25A0}"; public const WHITE_SQUARE = "\u{25A1}"; public const LOZENGE = "\u{25CA}"; public const MUSIC_FLAT_SIGN = "\u{266D}"; public const MUSIC_SHARP_SIGN = "\u{266F}"; public const LATIN_SMALL_LIGATURE_FI = "\u{FB01}"; public const LATIN_SMALL_LIGATURE_FL = "\u{FB02}"; public const BYTE_ORDER_MARK = "\u{FEFF}"; public const REPLACEMENT_CHARACTER = "\u{FFFD}"; /** * Convert text from (potentially invalid) UTF-8 to UTF-8. * * @param string $text * * @return string */ public function fromUtf8(string $text): string { if (preg_match('//u', $text) === false) { // Not UTF8? mb_substitute_character(0xFFFD); return mb_convert_encoding($text, 'UTF-8', 'UTF-8'); } return $text; } /** * Convert text from (potentially invalid) UTF-8 to UTF-8. * * @param string $text * * @return string */ public function toUtf8(string $text): string { return $this->fromUtf8($text); } /** * Create a UTF8 character from a code. * * @param int $code * * @return string */ public static function chr(int $code): string { if ($code < 0 || $code > 0x1FFFFF) { throw new InvalidArgumentException((string)$code); } if ($code <= 0x7F) { return chr($code); } if ($code <= 0x7FF) { return chr(($code >> 6) + 0xC0) . chr(($code & 0x3F) + 0x80); } if ($code <= 0xFFFF) { return chr(($code >> 12) + 0xE0) . chr((($code >> 6) & 0x3F) + 0x80) . chr(($code & 0x3F) + 0x80); } return chr(($code >> 18) + 0xF0) . chr((($code >> 12) & 0x3F) + 0x80) . chr((($code >> 6) & 0x3F) + 0x80) . chr(($code & 0x3F) + 0x80); } }