You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/04/01 01:09:38 UTC
[45/62] [abbrv] lucenenet git commit: Lucene.Net.Core.Analysis:
Deleted obsolete Analysis files that have mostly been moved to
Lucene.Net.Analysis.Common
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8a97bfcf/src/Lucene.Net.Core/Analysis/ASCIIFoldingFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Analysis/ASCIIFoldingFilter.cs b/src/Lucene.Net.Core/Analysis/ASCIIFoldingFilter.cs
deleted file mode 100644
index aaf023e..0000000
--- a/src/Lucene.Net.Core/Analysis/ASCIIFoldingFilter.cs
+++ /dev/null
@@ -1,3285 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-using Lucene.Net.Analysis.Tokenattributes;
-using ArrayUtil = Lucene.Net.Util.ArrayUtil;
-
-namespace Lucene.Net.Analysis
-{
-
- /// <summary> This class converts alphabetic, numeric, and symbolic Unicode characters
- /// which are not in the first 127 ASCII characters (the "Basic Latin" Unicode
- /// block) into their ASCII equivalents, if one exists.
- ///
- /// Characters from the following Unicode blocks are converted; however, only
- /// those characters with reasonable ASCII alternatives are converted:
- ///
- /// <list type="bullet">
- /// <item>C1 Controls and Latin-1 Supplement: <a href="http://www.unicode.org/charts/PDF/U0080.pdf">http://www.unicode.org/charts/PDF/U0080.pdf</a></item>
- /// <item>Latin Extended-A: <a href="http://www.unicode.org/charts/PDF/U0100.pdf">http://www.unicode.org/charts/PDF/U0100.pdf</a></item>
- /// <item>Latin Extended-B: <a href="http://www.unicode.org/charts/PDF/U0180.pdf">http://www.unicode.org/charts/PDF/U0180.pdf</a></item>
- /// <item>Latin Extended Additional: <a href="http://www.unicode.org/charts/PDF/U1E00.pdf">http://www.unicode.org/charts/PDF/U1E00.pdf</a></item>
- /// <item>Latin Extended-C: <a href="http://www.unicode.org/charts/PDF/U2C60.pdf">http://www.unicode.org/charts/PDF/U2C60.pdf</a></item>
- /// <item>Latin Extended-D: <a href="http://www.unicode.org/charts/PDF/UA720.pdf">http://www.unicode.org/charts/PDF/UA720.pdf</a></item>
- /// <item>IPA Extensions: <a href="http://www.unicode.org/charts/PDF/U0250.pdf">http://www.unicode.org/charts/PDF/U0250.pdf</a></item>
- /// <item>Phonetic Extensions: <a href="http://www.unicode.org/charts/PDF/U1D00.pdf">http://www.unicode.org/charts/PDF/U1D00.pdf</a></item>
- /// <item>Phonetic Extensions Supplement: <a href="http://www.unicode.org/charts/PDF/U1D80.pdf">http://www.unicode.org/charts/PDF/U1D80.pdf</a></item>
- /// <item>General Punctuation: <a href="http://www.unicode.org/charts/PDF/U2000.pdf">http://www.unicode.org/charts/PDF/U2000.pdf</a></item>
- /// <item>Superscripts and Subscripts: <a href="http://www.unicode.org/charts/PDF/U2070.pdf">http://www.unicode.org/charts/PDF/U2070.pdf</a></item>
- /// <item>Enclosed Alphanumerics: <a href="http://www.unicode.org/charts/PDF/U2460.pdf">http://www.unicode.org/charts/PDF/U2460.pdf</a></item>
- /// <item>Dingbats: <a href="http://www.unicode.org/charts/PDF/U2700.pdf">http://www.unicode.org/charts/PDF/U2700.pdf</a></item>
- /// <item>Supplemental Punctuation: <a href="http://www.unicode.org/charts/PDF/U2E00.pdf">http://www.unicode.org/charts/PDF/U2E00.pdf</a></item>
- /// <item>Alphabetic Presentation Forms: <a href="http://www.unicode.org/charts/PDF/UFB00.pdf">http://www.unicode.org/charts/PDF/UFB00.pdf</a></item>
- /// <item>Halfwidth and Fullwidth Forms: <a href="http://www.unicode.org/charts/PDF/UFF00.pdf">http://www.unicode.org/charts/PDF/UFF00.pdf</a></item>
- /// </list>
- ///
- /// See: <a href="http://en.wikipedia.org/wiki/Latin_characters_in_Unicode">http://en.wikipedia.org/wiki/Latin_characters_in_Unicode</a>
- ///
- /// The set of character conversions supported by this class is a superset of
- /// those supported by Lucene's <see cref="ISOLatin1AccentFilter" /> which strips
- /// accents from Latin1 characters. For example, 'À' will be replaced by
- /// 'a'.
- /// </summary>
- public sealed class ASCIIFoldingFilter : TokenFilter
- {
- public ASCIIFoldingFilter(TokenStream input):base(input)
- {
- termAtt = AddAttribute<ITermAttribute>();
- }
-
- private char[] output = new char[512];
- private int outputPos;
- private ITermAttribute termAtt;
-
- public override bool IncrementToken()
- {
- if (input.IncrementToken())
- {
- char[] buffer = termAtt.TermBuffer();
- int length = termAtt.TermLength();
-
- // If no characters actually require rewriting then we
- // just return token as-is:
- for (int i = 0; i < length; ++i)
- {
- char c = buffer[i];
- if (c >= '\u0080')
- {
- FoldToASCII(buffer, length);
- termAtt.SetTermBuffer(output, 0, outputPos);
- break;
- }
- }
- return true;
- }
- else
- {
- return false;
- }
- }
-
- /// <summary> Converts characters above ASCII to their ASCII equivalents. For example,
- /// accents are removed from accented characters.
- /// </summary>
- /// <param name="input">The string to fold
- /// </param>
- /// <param name="length">The number of characters in the input string
- /// </param>
- public void FoldToASCII(char[] input, int length)
- {
- // Worst-case length required:
- int maxSizeNeeded = 4 * length;
- if (output.Length < maxSizeNeeded)
- {
- output = new char[ArrayUtil.GetNextSize(maxSizeNeeded)];
- }
-
- outputPos = 0;
-
- for (int pos = 0; pos < length; ++pos)
- {
- char c = input[pos];
-
- // Quick test: if it's not in range then just keep current character
- if (c < '\u0080')
- {
- output[outputPos++] = c;
- }
- else
- {
- switch (c)
- {
-
- case '\u00C0':
- // �\u0192�\u201a� [LATIN CAPITAL LETTER A WITH GRAVE]
- case '\u00C1':
- // �\u0192� [LATIN CAPITAL LETTER A WITH ACUTE]
- case '\u00C2':
- // �\u0192�\u20ac\u0161 [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
- case '\u00C3':
- // �\u0192�\u2019 [LATIN CAPITAL LETTER A WITH TILDE]
- case '\u00C4':
- // �\u0192�\u20ac\u017e [LATIN CAPITAL LETTER A WITH DIAERESIS]
- case '\u00C5':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER A WITH RING ABOVE]
- case '\u0100':
- // �\u201e�\u201a� [LATIN CAPITAL LETTER A WITH MACRON]
- case '\u0102':
- // �\u201e�\u20ac\u0161 [LATIN CAPITAL LETTER A WITH BREVE]
- case '\u0104':
- // �\u201e�\u20ac\u017e [LATIN CAPITAL LETTER A WITH OGONEK]
- case '\u018F':
- // �\u2020� http://en.wikipedia.org/wiki/Schwa [LATIN CAPITAL LETTER SCHWA]
- case '\u01CD':
- // �\u2021� [LATIN CAPITAL LETTER A WITH CARON]
- case '\u01DE':
- // �\u2021ž [LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON]
- case '\u01E0':
- // �\u2021 [LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON]
- case '\u01FA':
- // �\u2021º [LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE]
- case '\u0200':
- // �\u02c6�\u201a� [LATIN CAPITAL LETTER A WITH DOUBLE GRAVE]
- case '\u0202':
- // �\u02c6�\u20ac\u0161 [LATIN CAPITAL LETTER A WITH INVERTED BREVE]
- case '\u0226':
- // �\u02c6¦ [LATIN CAPITAL LETTER A WITH DOT ABOVE]
- case '\u023A':
- // �\u02c6º [LATIN CAPITAL LETTER A WITH STROKE]
- case '\u1D00':
- // á´�\u201a� [LATIN LETTER SMALL CAPITAL A]
- case '\u1E00':
- // �\u201a� [LATIN CAPITAL LETTER A WITH RING BELOW]
- case '\u1EA0':
- // Ạ[LATIN CAPITAL LETTER A WITH DOT BELOW]
- case '\u1EA2':
- // Ả [LATIN CAPITAL LETTER A WITH HOOK ABOVE]
- case '\u1EA4':
- // Ấ [LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE]
- case '\u1EA6':
- // Ầ [LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE]
- case '\u1EA8':
- // Ẩ [LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE]
- case '\u1EAA':
- // Ẫ [LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE]
- case '\u1EAC':
- // Ậ [LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW]
- case '\u1EAE':
- // Ắ [LATIN CAPITAL LETTER A WITH BREVE AND ACUTE]
- case '\u1EB0':
- // Ằ [LATIN CAPITAL LETTER A WITH BREVE AND GRAVE]
- case '\u1EB2':
- // Ẳ [LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE]
- case '\u1EB4':
- // Ẵ [LATIN CAPITAL LETTER A WITH BREVE AND TILDE]
- case '\u1EB6':
- // Ặ [LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW]
- case '\u24B6':
- // â�\u20ac\u2122¶ [CIRCLED LATIN CAPITAL LETTER A]
- case '\uFF21': // A [FULLWIDTH LATIN CAPITAL LETTER A]
- output[outputPos++] = 'A';
- break;
-
- case '\u00E0':
- // �\u0192 [LATIN SMALL LETTER A WITH GRAVE]
- case '\u00E1':
- // �\u0192¡ [LATIN SMALL LETTER A WITH ACUTE]
- case '\u00E2':
- // �\u0192¢ [LATIN SMALL LETTER A WITH CIRCUMFLEX]
- case '\u00E3':
- // �\u0192£ [LATIN SMALL LETTER A WITH TILDE]
- case '\u00E4':
- // �\u0192¤ [LATIN SMALL LETTER A WITH DIAERESIS]
- case '\u00E5':
- // �\u0192¥ [LATIN SMALL LETTER A WITH RING ABOVE]
- case '\u0101':
- // �\u201e� [LATIN SMALL LETTER A WITH MACRON]
- case '\u0103':
- // �\u201e�\u2019 [LATIN SMALL LETTER A WITH BREVE]
- case '\u0105':
- // �\u201e�\u20ac� [LATIN SMALL LETTER A WITH OGONEK]
- case '\u01CE':
- // �\u2021Ž [LATIN SMALL LETTER A WITH CARON]
- case '\u01DF':
- // �\u2021Ÿ [LATIN SMALL LETTER A WITH DIAERESIS AND MACRON]
- case '\u01E1':
- // �\u2021¡ [LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON]
- case '\u01FB':
- // �\u2021» [LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE]
- case '\u0201':
- // �\u02c6� [LATIN SMALL LETTER A WITH DOUBLE GRAVE]
- case '\u0203':
- // �\u02c6�\u2019 [LATIN SMALL LETTER A WITH INVERTED BREVE]
- case '\u0227':
- // �\u02c6§ [LATIN SMALL LETTER A WITH DOT ABOVE]
- case '\u0250':
- // �\u2030� [LATIN SMALL LETTER TURNED A]
- case '\u0259':
- // �\u2030�\u201e� [LATIN SMALL LETTER SCHWA]
- case '\u025A':
- // �\u2030š [LATIN SMALL LETTER SCHWA WITH HOOK]
- case '\u1D8F':
- // � [LATIN SMALL LETTER A WITH RETROFLEX HOOK]
- case '\u1D95':
- // �\u20ac� [LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK]
- case '\u1E01':
- // ạ [LATIN SMALL LETTER A WITH RING BELOW]
- case '\u1E9A':
- // ả [LATIN SMALL LETTER A WITH RIGHT HALF RING]
- case '\u1EA1':
- // ạ [LATIN SMALL LETTER A WITH DOT BELOW]
- case '\u1EA3':
- // ả [LATIN SMALL LETTER A WITH HOOK ABOVE]
- case '\u1EA5':
- // ấ [LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE]
- case '\u1EA7':
- // ầ [LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE]
- case '\u1EA9':
- // ẩ [LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE]
- case '\u1EAB':
- // ẫ [LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE]
- case '\u1EAD':
- // Ạ[LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW]
- case '\u1EAF':
- // ắ [LATIN SMALL LETTER A WITH BREVE AND ACUTE]
- case '\u1EB1':
- // ằ [LATIN SMALL LETTER A WITH BREVE AND GRAVE]
- case '\u1EB3':
- // ẳ [LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE]
- case '\u1EB5':
- // ẵ [LATIN SMALL LETTER A WITH BREVE AND TILDE]
- case '\u1EB7':
- // ặ [LATIN SMALL LETTER A WITH BREVE AND DOT BELOW]
- case '\u2090':
- // â�\u20ac\u0161� [LATIN SUBSCRIPT SMALL LETTER A]
- case '\u2094':
- // â�\u20ac\u0161�? [LATIN SUBSCRIPT SMALL LETTER SCHWA]
- case '\u24D0':
- // â�\u20ac\u0153� [CIRCLED LATIN SMALL LETTER A]
- case '\u2C65':
- // â±¥ [LATIN SMALL LETTER A WITH STROKE]
- case '\u2C6F':
- // Ɐ [LATIN CAPITAL LETTER TURNED A]
- case '\uFF41': // � [FULLWIDTH LATIN SMALL LETTER A]
- output[outputPos++] = 'a';
- break;
-
- case '\uA732': // ê�\u201c² [LATIN CAPITAL LETTER AA]
- output[outputPos++] = 'A';
- output[outputPos++] = 'A';
- break;
-
- case '\u00C6':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER AE]
- case '\u01E2':
- // �\u2021¢ [LATIN CAPITAL LETTER AE WITH MACRON]
- case '\u01FC':
- // �\u2021¼ [LATIN CAPITAL LETTER AE WITH ACUTE]
- case '\u1D01': // á´� [LATIN LETTER SMALL CAPITAL AE]
- output[outputPos++] = 'A';
- output[outputPos++] = 'E';
- break;
-
- case '\uA734': // ê�\u201c´ [LATIN CAPITAL LETTER AO]
- output[outputPos++] = 'A';
- output[outputPos++] = 'O';
- break;
-
- case '\uA736': // ê�\u201c¶ [LATIN CAPITAL LETTER AU]
- output[outputPos++] = 'A';
- output[outputPos++] = 'U';
- break;
-
- case '\uA738':
- // ê�\u201c¸ [LATIN CAPITAL LETTER AV]
- case '\uA73A': // ê�\u201cº [LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR]
- output[outputPos++] = 'A';
- output[outputPos++] = 'V';
- break;
-
- case '\uA73C': // ê�\u201c¼ [LATIN CAPITAL LETTER AY]
- output[outputPos++] = 'A';
- output[outputPos++] = 'Y';
- break;
-
- case '\u249C': // â�\u20ac\u2122�\u201c [PARENTHESIZED LATIN SMALL LETTER A]
- output[outputPos++] = '(';
- output[outputPos++] = 'a';
- output[outputPos++] = ')';
- break;
-
- case '\uA733': // ê�\u201c³ [LATIN SMALL LETTER AA]
- output[outputPos++] = 'a';
- output[outputPos++] = 'a';
- break;
-
- case '\u00E6':
- // �\u0192¦ [LATIN SMALL LETTER AE]
- case '\u01E3':
- // �\u2021£ [LATIN SMALL LETTER AE WITH MACRON]
- case '\u01FD':
- // �\u2021½ [LATIN SMALL LETTER AE WITH ACUTE]
- case '\u1D02': // á´�\u20ac\u0161 [LATIN SMALL LETTER TURNED AE]
- output[outputPos++] = 'a';
- output[outputPos++] = 'e';
- break;
-
- case '\uA735': // ê�\u201cµ [LATIN SMALL LETTER AO]
- output[outputPos++] = 'a';
- output[outputPos++] = 'o';
- break;
-
- case '\uA737': // ê�\u201c· [LATIN SMALL LETTER AU]
- output[outputPos++] = 'a';
- output[outputPos++] = 'u';
- break;
-
- case '\uA739':
- // ê�\u201c¹ [LATIN SMALL LETTER AV]
- case '\uA73B': // ê�\u201c» [LATIN SMALL LETTER AV WITH HORIZONTAL BAR]
- output[outputPos++] = 'a';
- output[outputPos++] = 'v';
- break;
-
- case '\uA73D': // ê�\u201c½ [LATIN SMALL LETTER AY]
- output[outputPos++] = 'a';
- output[outputPos++] = 'y';
- break;
-
- case '\u0181':
- // �\u2020� [LATIN CAPITAL LETTER B WITH HOOK]
- case '\u0182':
- // �\u2020�\u20ac\u0161 [LATIN CAPITAL LETTER B WITH TOPBAR]
- case '\u0243':
- // �\u2030�\u2019 [LATIN CAPITAL LETTER B WITH STROKE]
- case '\u0299':
- // �\u0160�\u201e� [LATIN LETTER SMALL CAPITAL B]
- case '\u1D03':
- // á´�\u2019 [LATIN LETTER SMALL CAPITAL BARRED B]
- case '\u1E02':
- // �\u20ac\u0161 [LATIN CAPITAL LETTER B WITH DOT ABOVE]
- case '\u1E04':
- // �\u20ac\u017e [LATIN CAPITAL LETTER B WITH DOT BELOW]
- case '\u1E06':
- // �\u20ac� [LATIN CAPITAL LETTER B WITH LINE BELOW]
- case '\u24B7':
- // â�\u20ac\u2122· [CIRCLED LATIN CAPITAL LETTER B]
- case '\uFF22': // ï¼¢ [FULLWIDTH LATIN CAPITAL LETTER B]
- output[outputPos++] = 'B';
- break;
-
- case '\u0180':
- // �\u2020�\u201a� [LATIN SMALL LETTER B WITH STROKE]
- case '\u0183':
- // �\u2020�\u2019 [LATIN SMALL LETTER B WITH TOPBAR]
- case '\u0253':
- // �\u2030�\u20ac\u0153 [LATIN SMALL LETTER B WITH HOOK]
- case '\u1D6C':
- // ᵬ [LATIN SMALL LETTER B WITH MIDDLE TILDE]
- case '\u1D80':
- // �\u201a� [LATIN SMALL LETTER B WITH PALATAL HOOK]
- case '\u1E03':
- // �\u2019 [LATIN SMALL LETTER B WITH DOT ABOVE]
- case '\u1E05':
- // �\u20ac� [LATIN SMALL LETTER B WITH DOT BELOW]
- case '\u1E07':
- // �\u20ac� [LATIN SMALL LETTER B WITH LINE BELOW]
- case '\u24D1':
- // â�\u20ac\u0153�\u20ac\u02dc [CIRCLED LATIN SMALL LETTER B]
- case '\uFF42': // �\u20ac\u0161 [FULLWIDTH LATIN SMALL LETTER B]
- output[outputPos++] = 'b';
- break;
-
- case '\u249D': // â�\u20ac\u2122� [PARENTHESIZED LATIN SMALL LETTER B]
- output[outputPos++] = '(';
- output[outputPos++] = 'b';
- output[outputPos++] = ')';
- break;
-
- case '\u00C7':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER C WITH CEDILLA]
- case '\u0106':
- // �\u201e�\u20ac� [LATIN CAPITAL LETTER C WITH ACUTE]
- case '\u0108':
- // �\u201e�\u2020 [LATIN CAPITAL LETTER C WITH CIRCUMFLEX]
- case '\u010A':
- // �\u201eŠ [LATIN CAPITAL LETTER C WITH DOT ABOVE]
- case '\u010C':
- // �\u201e�\u2019 [LATIN CAPITAL LETTER C WITH CARON]
- case '\u0187':
- // �\u2020�\u20ac� [LATIN CAPITAL LETTER C WITH HOOK]
- case '\u023B':
- // �\u02c6» [LATIN CAPITAL LETTER C WITH STROKE]
- case '\u0297':
- // �\u0160�\u20ac\u201d [LATIN LETTER STRETCHED C]
- case '\u1D04':
- // á´�\u20ac\u017e [LATIN LETTER SMALL CAPITAL C]
- case '\u1E08':
- // �\u2020 [LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE]
- case '\u24B8':
- // â�\u20ac\u2122¸ [CIRCLED LATIN CAPITAL LETTER C]
- case '\uFF23': // ï¼£ [FULLWIDTH LATIN CAPITAL LETTER C]
- output[outputPos++] = 'C';
- break;
-
- case '\u00E7':
- // �\u0192§ [LATIN SMALL LETTER C WITH CEDILLA]
- case '\u0107':
- // �\u201e�\u20ac� [LATIN SMALL LETTER C WITH ACUTE]
- case '\u0109':
- // �\u201e�\u20ac� [LATIN SMALL LETTER C WITH CIRCUMFLEX]
- case '\u010B':
- // �\u201e�\u20ac� [LATIN SMALL LETTER C WITH DOT ABOVE]
- case '\u010D':
- // �\u201e� [LATIN SMALL LETTER C WITH CARON]
- case '\u0188':
- // �\u2020�\u2020 [LATIN SMALL LETTER C WITH HOOK]
- case '\u023C':
- // �\u02c6¼ [LATIN SMALL LETTER C WITH STROKE]
- case '\u0255':
- // �\u2030�\u20ac� [LATIN SMALL LETTER C WITH CURL]
- case '\u1E09':
- // �\u20ac� [LATIN SMALL LETTER C WITH CEDILLA AND ACUTE]
- case '\u2184':
- // â�\u20ac��\u20ac\u017e [LATIN SMALL LETTER REVERSED C]
- case '\u24D2':
- // â�\u20ac\u0153�\u20ac\u2122 [CIRCLED LATIN SMALL LETTER C]
- case '\uA73E':
- // ê�\u201c¾ [LATIN CAPITAL LETTER REVERSED C WITH DOT]
- case '\uA73F':
- // ê�\u201c¿ [LATIN SMALL LETTER REVERSED C WITH DOT]
- case '\uFF43': // �\u2019 [FULLWIDTH LATIN SMALL LETTER C]
- output[outputPos++] = 'c';
- break;
-
- case '\u249E': // â�\u20ac\u2122ž [PARENTHESIZED LATIN SMALL LETTER C]
- output[outputPos++] = '(';
- output[outputPos++] = 'c';
- output[outputPos++] = ')';
- break;
-
- case '\u00D0':
- // �\u0192� [LATIN CAPITAL LETTER ETH]
- case '\u010E':
- // �\u201eŽ [LATIN CAPITAL LETTER D WITH CARON]
- case '\u0110':
- // �\u201e� [LATIN CAPITAL LETTER D WITH STROKE]
- case '\u0189':
- // �\u2020�\u20ac� [LATIN CAPITAL LETTER AFRICAN D]
- case '\u018A':
- // �\u2020Š [LATIN CAPITAL LETTER D WITH HOOK]
- case '\u018B':
- // �\u2020�\u20ac� [LATIN CAPITAL LETTER D WITH TOPBAR]
- case '\u1D05':
- // á´�\u20ac� [LATIN LETTER SMALL CAPITAL D]
- case '\u1D06':
- // á´�\u20ac� [LATIN LETTER SMALL CAPITAL ETH]
- case '\u1E0A':
- // Ḋ [LATIN CAPITAL LETTER D WITH DOT ABOVE]
- case '\u1E0C':
- // �\u2019 [LATIN CAPITAL LETTER D WITH DOT BELOW]
- case '\u1E0E':
- // Ḏ [LATIN CAPITAL LETTER D WITH LINE BELOW]
- case '\u1E10':
- // � [LATIN CAPITAL LETTER D WITH CEDILLA]
- case '\u1E12':
- // �\u20ac\u2122 [LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW]
- case '\u24B9':
- // â�\u20ac\u2122¹ [CIRCLED LATIN CAPITAL LETTER D]
- case '\uA779':
- // � [LATIN CAPITAL LETTER INSULAR D]
- case '\uFF24': // D [FULLWIDTH LATIN CAPITAL LETTER D]
- output[outputPos++] = 'D';
- break;
-
- case '\u00F0':
- // �\u0192° [LATIN SMALL LETTER ETH]
- case '\u010F':
- // �\u201e� [LATIN SMALL LETTER D WITH CARON]
- case '\u0111':
- // �\u201e�\u20ac\u02dc [LATIN SMALL LETTER D WITH STROKE]
- case '\u018C':
- // �\u2020�\u2019 [LATIN SMALL LETTER D WITH TOPBAR]
- case '\u0221':
- // �\u02c6¡ [LATIN SMALL LETTER D WITH CURL]
- case '\u0256':
- // �\u2030�\u20ac\u201c [LATIN SMALL LETTER D WITH TAIL]
- case '\u0257':
- // �\u2030�\u20ac\u201d [LATIN SMALL LETTER D WITH HOOK]
- case '\u1D6D':
- // áµ [LATIN SMALL LETTER D WITH MIDDLE TILDE]
- case '\u1D81':
- // � [LATIN SMALL LETTER D WITH PALATAL HOOK]
- case '\u1D91':
- // �\u20ac\u02dc [LATIN SMALL LETTER D WITH HOOK AND TAIL]
- case '\u1E0B':
- // �\u20ac� [LATIN SMALL LETTER D WITH DOT ABOVE]
- case '\u1E0D':
- // � [LATIN SMALL LETTER D WITH DOT BELOW]
- case '\u1E0F':
- // � [LATIN SMALL LETTER D WITH LINE BELOW]
- case '\u1E11':
- // �\u20ac\u02dc [LATIN SMALL LETTER D WITH CEDILLA]
- case '\u1E13':
- // �\u20ac\u0153 [LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW]
- case '\u24D3':
- // â�\u20ac\u0153�\u20ac\u0153 [CIRCLED LATIN SMALL LETTER D]
- case '\uA77A':
- // � [LATIN SMALL LETTER INSULAR D]
- case '\uFF44': // �\u20ac\u017e [FULLWIDTH LATIN SMALL LETTER D]
- output[outputPos++] = 'd';
- break;
-
- case '\u01C4':
- // �\u2021�\u20ac\u017e [LATIN CAPITAL LETTER DZ WITH CARON]
- case '\u01F1': // �\u2021± [LATIN CAPITAL LETTER DZ]
- output[outputPos++] = 'D';
- output[outputPos++] = 'Z';
- break;
-
- case '\u01C5':
- // �\u2021�\u20ac� [LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON]
- case '\u01F2': // �\u2021² [LATIN CAPITAL LETTER D WITH SMALL LETTER Z]
- output[outputPos++] = 'D';
- output[outputPos++] = 'z';
- break;
-
- case '\u249F': // â�\u20ac\u2122Ÿ [PARENTHESIZED LATIN SMALL LETTER D]
- output[outputPos++] = '(';
- output[outputPos++] = 'd';
- output[outputPos++] = ')';
- break;
-
- case '\u0238': // �\u02c6¸ [LATIN SMALL LETTER DB DIGRAPH]
- output[outputPos++] = 'd';
- output[outputPos++] = 'b';
- break;
-
- case '\u01C6':
- // �\u2021�\u20ac� [LATIN SMALL LETTER DZ WITH CARON]
- case '\u01F3':
- // �\u2021³ [LATIN SMALL LETTER DZ]
- case '\u02A3':
- // �\u0160£ [LATIN SMALL LETTER DZ DIGRAPH]
- case '\u02A5': // �\u0160¥ [LATIN SMALL LETTER DZ DIGRAPH WITH CURL]
- output[outputPos++] = 'd';
- output[outputPos++] = 'z';
- break;
-
- case '\u00C8':
- // �\u0192�\u2020 [LATIN CAPITAL LETTER E WITH GRAVE]
- case '\u00C9':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER E WITH ACUTE]
- case '\u00CA':
- // �\u0192Š [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
- case '\u00CB':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER E WITH DIAERESIS]
- case '\u0112':
- // �\u201e�\u20ac\u2122 [LATIN CAPITAL LETTER E WITH MACRON]
- case '\u0114':
- // �\u201e�? [LATIN CAPITAL LETTER E WITH BREVE]
- case '\u0116':
- // �\u201e�\u20ac\u201c [LATIN CAPITAL LETTER E WITH DOT ABOVE]
- case '\u0118':
- // �\u201e�\u0153 [LATIN CAPITAL LETTER E WITH OGONEK]
- case '\u011A':
- // �\u201eš [LATIN CAPITAL LETTER E WITH CARON]
- case '\u018E':
- // �\u2020Ž [LATIN CAPITAL LETTER REVERSED E]
- case '\u0190':
- // �\u2020� [LATIN CAPITAL LETTER OPEN E]
- case '\u0204':
- // �\u02c6�\u20ac\u017e [LATIN CAPITAL LETTER E WITH DOUBLE GRAVE]
- case '\u0206':
- // �\u02c6�\u20ac� [LATIN CAPITAL LETTER E WITH INVERTED BREVE]
- case '\u0228':
- // �\u02c6¨ [LATIN CAPITAL LETTER E WITH CEDILLA]
- case '\u0246':
- // �\u2030�\u20ac� [LATIN CAPITAL LETTER E WITH STROKE]
- case '\u1D07':
- // á´�\u20ac� [LATIN LETTER SMALL CAPITAL E]
- case '\u1E14':
- // �? [LATIN CAPITAL LETTER E WITH MACRON AND GRAVE]
- case '\u1E16':
- // �\u20ac\u201c [LATIN CAPITAL LETTER E WITH MACRON AND ACUTE]
- case '\u1E18':
- // �\u0153 [LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW]
- case '\u1E1A':
- // Ḛ [LATIN CAPITAL LETTER E WITH TILDE BELOW]
- case '\u1E1C':
- // �\u201c [LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE]
- case '\u1EB8':
- // Ẹ [LATIN CAPITAL LETTER E WITH DOT BELOW]
- case '\u1EBA':
- // Ẻ [LATIN CAPITAL LETTER E WITH HOOK ABOVE]
- case '\u1EBC':
- // Ẽ [LATIN CAPITAL LETTER E WITH TILDE]
- case '\u1EBE':
- // Ế [LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE]
- case '\u1EC0':
- // �\u201a� [LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE]
- case '\u1EC2':
- // �\u20ac\u0161 [LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE]
- case '\u1EC4':
- // �\u20ac\u017e [LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE]
- case '\u1EC6':
- // �\u20ac� [LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW]
- case '\u24BA':
- // â�\u20ac\u2122º [CIRCLED LATIN CAPITAL LETTER E]
- case '\u2C7B':
- // â±» [LATIN LETTER SMALL CAPITAL TURNED E]
- case '\uFF25': // ï¼¥ [FULLWIDTH LATIN CAPITAL LETTER E]
- output[outputPos++] = 'E';
- break;
-
- case '\u00E8':
- // �\u0192¨ [LATIN SMALL LETTER E WITH GRAVE]
- case '\u00E9':
- // �\u0192© [LATIN SMALL LETTER E WITH ACUTE]
- case '\u00EA':
- // �\u0192ª [LATIN SMALL LETTER E WITH CIRCUMFLEX]
- case '\u00EB':
- // �\u0192« [LATIN SMALL LETTER E WITH DIAERESIS]
- case '\u0113':
- // �\u201e�\u20ac\u0153 [LATIN SMALL LETTER E WITH MACRON]
- case '\u0115':
- // �\u201e�\u20ac� [LATIN SMALL LETTER E WITH BREVE]
- case '\u0117':
- // �\u201e�\u20ac\u201d [LATIN SMALL LETTER E WITH DOT ABOVE]
- case '\u0119':
- // �\u201e�\u201e� [LATIN SMALL LETTER E WITH OGONEK]
- case '\u011B':
- // �\u201e�\u20ac� [LATIN SMALL LETTER E WITH CARON]
- case '\u01DD':
- // �\u2021� [LATIN SMALL LETTER TURNED E]
- case '\u0205':
- // �\u02c6�\u20ac� [LATIN SMALL LETTER E WITH DOUBLE GRAVE]
- case '\u0207':
- // �\u02c6�\u20ac� [LATIN SMALL LETTER E WITH INVERTED BREVE]
- case '\u0229':
- // �\u02c6© [LATIN SMALL LETTER E WITH CEDILLA]
- case '\u0247':
- // �\u2030�\u20ac� [LATIN SMALL LETTER E WITH STROKE]
- case '\u0258':
- // �\u2030�\u0153 [LATIN SMALL LETTER REVERSED E]
- case '\u025B':
- // �\u2030�\u20ac� [LATIN SMALL LETTER OPEN E]
- case '\u025C':
- // �\u2030�\u201c [LATIN SMALL LETTER REVERSED OPEN E]
- case '\u025D':
- // �\u2030� [LATIN SMALL LETTER REVERSED OPEN E WITH HOOK]
- case '\u025E':
- // �\u2030ž [LATIN SMALL LETTER CLOSED REVERSED OPEN E]
- case '\u029A':
- // �\u0160š [LATIN SMALL LETTER CLOSED OPEN E]
- case '\u1D08':
- // á´�\u2020 [LATIN SMALL LETTER TURNED OPEN E]
- case '\u1D92':
- // �\u20ac\u2122 [LATIN SMALL LETTER E WITH RETROFLEX HOOK]
- case '\u1D93':
- // �\u20ac\u0153 [LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK]
- case '\u1D94':
- // �? [LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK]
- case '\u1E15':
- // �\u20ac� [LATIN SMALL LETTER E WITH MACRON AND GRAVE]
- case '\u1E17':
- // �\u20ac\u201d [LATIN SMALL LETTER E WITH MACRON AND ACUTE]
- case '\u1E19':
- // �\u201e� [LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW]
- case '\u1E1B':
- // �\u20ac� [LATIN SMALL LETTER E WITH TILDE BELOW]
- case '\u1E1D':
- // � [LATIN SMALL LETTER E WITH CEDILLA AND BREVE]
- case '\u1EB9':
- // ẹ [LATIN SMALL LETTER E WITH DOT BELOW]
- case '\u1EBB':
- // ẻ [LATIN SMALL LETTER E WITH HOOK ABOVE]
- case '\u1EBD':
- // ẽ [LATIN SMALL LETTER E WITH TILDE]
- case '\u1EBF':
- // ế [LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE]
- case '\u1EC1':
- // � [LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE]
- case '\u1EC3':
- // �\u2019 [LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE]
- case '\u1EC5':
- // �\u20ac� [LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE]
- case '\u1EC7':
- // �\u20ac� [LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW]
- case '\u2091':
- // â�\u20ac\u0161�\u20ac\u02dc [LATIN SUBSCRIPT SMALL LETTER E]
- case '\u24D4':
- // â�\u20ac\u0153�? [CIRCLED LATIN SMALL LETTER E]
- case '\u2C78':
- // ⱸ [LATIN SMALL LETTER E WITH NOTCH]
- case '\uFF45': // �\u20ac� [FULLWIDTH LATIN SMALL LETTER E]
- output[outputPos++] = 'e';
- break;
-
- case '\u24A0': // â�\u20ac\u2122 [PARENTHESIZED LATIN SMALL LETTER E]
- output[outputPos++] = '(';
- output[outputPos++] = 'e';
- output[outputPos++] = ')';
- break;
-
- case '\u0191':
- // �\u2020�\u20ac\u02dc [LATIN CAPITAL LETTER F WITH HOOK]
- case '\u1E1E':
- // Ḟ [LATIN CAPITAL LETTER F WITH DOT ABOVE]
- case '\u24BB':
- // â�\u20ac\u2122» [CIRCLED LATIN CAPITAL LETTER F]
- case '\uA730':
- // ê�\u201c° [LATIN LETTER SMALL CAPITAL F]
- case '\uA77B':
- // � [LATIN CAPITAL LETTER INSULAR F]
- case '\uA7FB':
- // ꟻ [LATIN EPIGRAPHIC LETTER REVERSED F]
- case '\uFF26': // F [FULLWIDTH LATIN CAPITAL LETTER F]
- output[outputPos++] = 'F';
- break;
-
- case '\u0192':
- // �\u2020�\u20ac\u2122 [LATIN SMALL LETTER F WITH HOOK]
- case '\u1D6E':
- // áµ® [LATIN SMALL LETTER F WITH MIDDLE TILDE]
- case '\u1D82':
- // �\u20ac\u0161 [LATIN SMALL LETTER F WITH PALATAL HOOK]
- case '\u1E1F':
- // ḟ [LATIN SMALL LETTER F WITH DOT ABOVE]
- case '\u1E9B':
- // �\u20ac� [LATIN SMALL LETTER LONG S WITH DOT ABOVE]
- case '\u24D5':
- // â�\u20ac\u0153�\u20ac� [CIRCLED LATIN SMALL LETTER F]
- case '\uA77C':
- // � [LATIN SMALL LETTER INSULAR F]
- case '\uFF46': // �\u20ac� [FULLWIDTH LATIN SMALL LETTER F]
- output[outputPos++] = 'f';
- break;
-
- case '\u24A1': // â�\u20ac\u2122¡ [PARENTHESIZED LATIN SMALL LETTER F]
- output[outputPos++] = '(';
- output[outputPos++] = 'f';
- output[outputPos++] = ')';
- break;
-
- case '\uFB00': // �\u201a� [LATIN SMALL LIGATURE FF]
- output[outputPos++] = 'f';
- output[outputPos++] = 'f';
- break;
-
- case '\uFB03': // �\u2019 [LATIN SMALL LIGATURE FFI]
- output[outputPos++] = 'f';
- output[outputPos++] = 'f';
- output[outputPos++] = 'i';
- break;
-
- case '\uFB04': // �\u20ac\u017e [LATIN SMALL LIGATURE FFL]
- output[outputPos++] = 'f';
- output[outputPos++] = 'f';
- output[outputPos++] = 'l';
- break;
-
- case '\uFB01': // � [LATIN SMALL LIGATURE FI]
- output[outputPos++] = 'f';
- output[outputPos++] = 'i';
- break;
-
- case '\uFB02': // �\u20ac\u0161 [LATIN SMALL LIGATURE FL]
- output[outputPos++] = 'f';
- output[outputPos++] = 'l';
- break;
-
- case '\u011C':
- // �\u201e�\u201c [LATIN CAPITAL LETTER G WITH CIRCUMFLEX]
- case '\u011E':
- // �\u201ež [LATIN CAPITAL LETTER G WITH BREVE]
- case '\u0120':
- // �\u201e [LATIN CAPITAL LETTER G WITH DOT ABOVE]
- case '\u0122':
- // �\u201e¢ [LATIN CAPITAL LETTER G WITH CEDILLA]
- case '\u0193':
- // �\u2020�\u20ac\u0153 [LATIN CAPITAL LETTER G WITH HOOK]
- case '\u01E4':
- // �\u2021¤ [LATIN CAPITAL LETTER G WITH STROKE]
- case '\u01E5':
- // �\u2021¥ [LATIN SMALL LETTER G WITH STROKE]
- case '\u01E6':
- // �\u2021¦ [LATIN CAPITAL LETTER G WITH CARON]
- case '\u01E7':
- // �\u2021§ [LATIN SMALL LETTER G WITH CARON]
- case '\u01F4':
- // �\u2021´ [LATIN CAPITAL LETTER G WITH ACUTE]
- case '\u0262':
- // �\u2030¢ [LATIN LETTER SMALL CAPITAL G]
- case '\u029B':
- // �\u0160�\u20ac� [LATIN LETTER SMALL CAPITAL G WITH HOOK]
- case '\u1E20':
- // Ḡ[LATIN CAPITAL LETTER G WITH MACRON]
- case '\u24BC':
- // â�\u20ac\u2122¼ [CIRCLED LATIN CAPITAL LETTER G]
- case '\uA77D':
- // � [LATIN CAPITAL LETTER INSULAR G]
- case '\uA77E':
- // � [LATIN CAPITAL LETTER TURNED INSULAR G]
- case '\uFF27': // ï¼§ [FULLWIDTH LATIN CAPITAL LETTER G]
- output[outputPos++] = 'G';
- break;
-
- case '\u011D':
- // �\u201e� [LATIN SMALL LETTER G WITH CIRCUMFLEX]
- case '\u011F':
- // �\u201eŸ [LATIN SMALL LETTER G WITH BREVE]
- case '\u0121':
- // �\u201e¡ [LATIN SMALL LETTER G WITH DOT ABOVE]
- case '\u0123':
- // �\u201e£ [LATIN SMALL LETTER G WITH CEDILLA]
- case '\u01F5':
- // �\u2021µ [LATIN SMALL LETTER G WITH ACUTE]
- case '\u0260':
- // �\u2030 [LATIN SMALL LETTER G WITH HOOK]
- case '\u0261':
- // �\u2030¡ [LATIN SMALL LETTER SCRIPT G]
- case '\u1D77':
- // áµ· [LATIN SMALL LETTER TURNED G]
- case '\u1D79':
- // áµ¹ [LATIN SMALL LETTER INSULAR G]
- case '\u1D83':
- // �\u2019 [LATIN SMALL LETTER G WITH PALATAL HOOK]
- case '\u1E21':
- // ḡ [LATIN SMALL LETTER G WITH MACRON]
- case '\u24D6':
- // â�\u20ac\u0153�\u20ac\u201c [CIRCLED LATIN SMALL LETTER G]
- case '\uA77F':
- // � [LATIN SMALL LETTER TURNED INSULAR G]
- case '\uFF47': // �\u20ac� [FULLWIDTH LATIN SMALL LETTER G]
- output[outputPos++] = 'g';
- break;
-
- case '\u24A2': // â�\u20ac\u2122¢ [PARENTHESIZED LATIN SMALL LETTER G]
- output[outputPos++] = '(';
- output[outputPos++] = 'g';
- output[outputPos++] = ')';
- break;
-
- case '\u0124':
- // �\u201e¤ [LATIN CAPITAL LETTER H WITH CIRCUMFLEX]
- case '\u0126':
- // �\u201e¦ [LATIN CAPITAL LETTER H WITH STROKE]
- case '\u021E':
- // �\u02c6ž [LATIN CAPITAL LETTER H WITH CARON]
- case '\u029C':
- // �\u0160�\u201c [LATIN LETTER SMALL CAPITAL H]
- case '\u1E22':
- // Ḣ [LATIN CAPITAL LETTER H WITH DOT ABOVE]
- case '\u1E24':
- // Ḥ [LATIN CAPITAL LETTER H WITH DOT BELOW]
- case '\u1E26':
- // Ḧ [LATIN CAPITAL LETTER H WITH DIAERESIS]
- case '\u1E28':
- // Ḩ [LATIN CAPITAL LETTER H WITH CEDILLA]
- case '\u1E2A':
- // Ḫ [LATIN CAPITAL LETTER H WITH BREVE BELOW]
- case '\u24BD':
- // â�\u20ac\u2122½ [CIRCLED LATIN CAPITAL LETTER H]
- case '\u2C67':
- // â±§ [LATIN CAPITAL LETTER H WITH DESCENDER]
- case '\u2C75':
- // â±µ [LATIN CAPITAL LETTER HALF H]
- case '\uFF28': // H [FULLWIDTH LATIN CAPITAL LETTER H]
- output[outputPos++] = 'H';
- break;
-
- case '\u0125':
- // �\u201e¥ [LATIN SMALL LETTER H WITH CIRCUMFLEX]
- case '\u0127':
- // �\u201e§ [LATIN SMALL LETTER H WITH STROKE]
- case '\u021F':
- // �\u02c6Ÿ [LATIN SMALL LETTER H WITH CARON]
- case '\u0265':
- // �\u2030¥ [LATIN SMALL LETTER TURNED H]
- case '\u0266':
- // �\u2030¦ [LATIN SMALL LETTER H WITH HOOK]
- case '\u02AE':
- // �\u0160® [LATIN SMALL LETTER TURNED H WITH FISHHOOK]
- case '\u02AF':
- // �\u0160¯ [LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL]
- case '\u1E23':
- // ḣ [LATIN SMALL LETTER H WITH DOT ABOVE]
- case '\u1E25':
- // ḥ [LATIN SMALL LETTER H WITH DOT BELOW]
- case '\u1E27':
- // ḧ [LATIN SMALL LETTER H WITH DIAERESIS]
- case '\u1E29':
- // ḩ [LATIN SMALL LETTER H WITH CEDILLA]
- case '\u1E2B':
- // ḫ [LATIN SMALL LETTER H WITH BREVE BELOW]
- case '\u1E96':
- // �\u20ac\u201c [LATIN SMALL LETTER H WITH LINE BELOW]
- case '\u24D7':
- // â�\u20ac\u0153�\u20ac\u201d [CIRCLED LATIN SMALL LETTER H]
- case '\u2C68':
- // ⱨ [LATIN SMALL LETTER H WITH DESCENDER]
- case '\u2C76':
- // â±¶ [LATIN SMALL LETTER HALF H]
- case '\uFF48': // �\u2020 [FULLWIDTH LATIN SMALL LETTER H]
- output[outputPos++] = 'h';
- break;
-
- case '\u01F6': // �\u2021¶ http://en.wikipedia.org/wiki/Hwair [LATIN CAPITAL LETTER HWAIR]
- output[outputPos++] = 'H';
- output[outputPos++] = 'V';
- break;
-
- case '\u24A3': // â�\u20ac\u2122£ [PARENTHESIZED LATIN SMALL LETTER H]
- output[outputPos++] = '(';
- output[outputPos++] = 'h';
- output[outputPos++] = ')';
- break;
-
- case '\u0195': // �\u2020�\u20ac� [LATIN SMALL LETTER HV]
- output[outputPos++] = 'h';
- output[outputPos++] = 'v';
- break;
-
- case '\u00CC':
- // �\u0192�\u2019 [LATIN CAPITAL LETTER I WITH GRAVE]
- case '\u00CD':
- // �\u0192� [LATIN CAPITAL LETTER I WITH ACUTE]
- case '\u00CE':
- // �\u0192Ž [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
- case '\u00CF':
- // �\u0192� [LATIN CAPITAL LETTER I WITH DIAERESIS]
- case '\u0128':
- // �\u201e¨ [LATIN CAPITAL LETTER I WITH TILDE]
- case '\u012A':
- // �\u201eª [LATIN CAPITAL LETTER I WITH MACRON]
- case '\u012C':
- // �\u201e¬ [LATIN CAPITAL LETTER I WITH BREVE]
- case '\u012E':
- // �\u201e® [LATIN CAPITAL LETTER I WITH OGONEK]
- case '\u0130':
- // �\u201e° [LATIN CAPITAL LETTER I WITH DOT ABOVE]
- case '\u0196':
- // �\u2020�\u20ac\u201c [LATIN CAPITAL LETTER IOTA]
- case '\u0197':
- // �\u2020�\u20ac\u201d [LATIN CAPITAL LETTER I WITH STROKE]
- case '\u01CF':
- // �\u2021� [LATIN CAPITAL LETTER I WITH CARON]
- case '\u0208':
- // �\u02c6�\u2020 [LATIN CAPITAL LETTER I WITH DOUBLE GRAVE]
- case '\u020A':
- // �\u02c6Š [LATIN CAPITAL LETTER I WITH INVERTED BREVE]
- case '\u026A':
- // �\u2030ª [LATIN LETTER SMALL CAPITAL I]
- case '\u1D7B':
- // áµ» [LATIN SMALL CAPITAL LETTER I WITH STROKE]
- case '\u1E2C':
- // Ḭ [LATIN CAPITAL LETTER I WITH TILDE BELOW]
- case '\u1E2E':
- // Ḯ [LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE]
- case '\u1EC8':
- // �\u2020 [LATIN CAPITAL LETTER I WITH HOOK ABOVE]
- case '\u1ECA':
- // Ị [LATIN CAPITAL LETTER I WITH DOT BELOW]
- case '\u24BE':
- // â�\u20ac\u2122¾ [CIRCLED LATIN CAPITAL LETTER I]
- case '\uA7FE':
- // ꟾ [LATIN EPIGRAPHIC LETTER I LONGA]
- case '\uFF29': // I [FULLWIDTH LATIN CAPITAL LETTER I]
- output[outputPos++] = 'I';
- break;
-
- case '\u00EC':
- // �\u0192¬ [LATIN SMALL LETTER I WITH GRAVE]
- case '\u00ED':
- // �\u0192 [LATIN SMALL LETTER I WITH ACUTE]
- case '\u00EE':
- // �\u0192® [LATIN SMALL LETTER I WITH CIRCUMFLEX]
- case '\u00EF':
- // �\u0192¯ [LATIN SMALL LETTER I WITH DIAERESIS]
- case '\u0129':
- // �\u201e© [LATIN SMALL LETTER I WITH TILDE]
- case '\u012B':
- // �\u201e« [LATIN SMALL LETTER I WITH MACRON]
- case '\u012D':
- // �\u201e [LATIN SMALL LETTER I WITH BREVE]
- case '\u012F':
- // �\u201e¯ [LATIN SMALL LETTER I WITH OGONEK]
- case '\u0131':
- // �\u201e± [LATIN SMALL LETTER DOTLESS I]
- case '\u01D0':
- // �\u2021� [LATIN SMALL LETTER I WITH CARON]
- case '\u0209':
- // �\u02c6�\u20ac� [LATIN SMALL LETTER I WITH DOUBLE GRAVE]
- case '\u020B':
- // �\u02c6�\u20ac� [LATIN SMALL LETTER I WITH INVERTED BREVE]
- case '\u0268':
- // �\u2030¨ [LATIN SMALL LETTER I WITH STROKE]
- case '\u1D09':
- // á´�\u20ac� [LATIN SMALL LETTER TURNED I]
- case '\u1D62':
- // áµ¢ [LATIN SUBSCRIPT SMALL LETTER I]
- case '\u1D7C':
- // áµ¼ [LATIN SMALL LETTER IOTA WITH STROKE]
- case '\u1D96':
- // �\u20ac\u201c [LATIN SMALL LETTER I WITH RETROFLEX HOOK]
- case '\u1E2D':
- // Ḡ[LATIN SMALL LETTER I WITH TILDE BELOW]
- case '\u1E2F':
- // ḯ [LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE]
- case '\u1EC9':
- // �\u20ac� [LATIN SMALL LETTER I WITH HOOK ABOVE]
- case '\u1ECB':
- // �\u20ac� [LATIN SMALL LETTER I WITH DOT BELOW]
- case '\u2071':
- // � [SUPERSCRIPT LATIN SMALL LETTER I]
- case '\u24D8':
- // â�\u20ac\u0153�\u0153 [CIRCLED LATIN SMALL LETTER I]
- case '\uFF49': // �\u20ac� [FULLWIDTH LATIN SMALL LETTER I]
- output[outputPos++] = 'i';
- break;
-
- case '\u0132': // �\u201e² [LATIN CAPITAL LIGATURE IJ]
- output[outputPos++] = 'I';
- output[outputPos++] = 'J';
- break;
-
- case '\u24A4': // â�\u20ac\u2122¤ [PARENTHESIZED LATIN SMALL LETTER I]
- output[outputPos++] = '(';
- output[outputPos++] = 'i';
- output[outputPos++] = ')';
- break;
-
- case '\u0133': // �\u201e³ [LATIN SMALL LIGATURE IJ]
- output[outputPos++] = 'i';
- output[outputPos++] = 'j';
- break;
-
- case '\u0134':
- // �\u201e´ [LATIN CAPITAL LETTER J WITH CIRCUMFLEX]
- case '\u0248':
- // �\u2030�\u2020 [LATIN CAPITAL LETTER J WITH STROKE]
- case '\u1D0A':
- // á´Š [LATIN LETTER SMALL CAPITAL J]
- case '\u24BF':
- // â�\u20ac\u2122¿ [CIRCLED LATIN CAPITAL LETTER J]
- case '\uFF2A': // J [FULLWIDTH LATIN CAPITAL LETTER J]
- output[outputPos++] = 'J';
- break;
-
- case '\u0135':
- // �\u201eµ [LATIN SMALL LETTER J WITH CIRCUMFLEX]
- case '\u01F0':
- // �\u2021° [LATIN SMALL LETTER J WITH CARON]
- case '\u0237':
- // �\u02c6· [LATIN SMALL LETTER DOTLESS J]
- case '\u0249':
- // �\u2030�\u20ac� [LATIN SMALL LETTER J WITH STROKE]
- case '\u025F':
- // �\u2030Ÿ [LATIN SMALL LETTER DOTLESS J WITH STROKE]
- case '\u0284':
- // �\u0160�\u20ac\u017e [LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK]
- case '\u029D':
- // �\u0160� [LATIN SMALL LETTER J WITH CROSSED-TAIL]
- case '\u24D9':
- // â�\u20ac\u0153�\u201e� [CIRCLED LATIN SMALL LETTER J]
- case '\u2C7C':
- // â±¼ [LATIN SUBSCRIPT SMALL LETTER J]
- case '\uFF4A': // j [FULLWIDTH LATIN SMALL LETTER J]
- output[outputPos++] = 'j';
- break;
-
- case '\u24A5': // â�\u20ac\u2122¥ [PARENTHESIZED LATIN SMALL LETTER J]
- output[outputPos++] = '(';
- output[outputPos++] = 'j';
- output[outputPos++] = ')';
- break;
-
- case '\u0136':
- // �\u201e¶ [LATIN CAPITAL LETTER K WITH CEDILLA]
- case '\u0198':
- // �\u2020�\u0153 [LATIN CAPITAL LETTER K WITH HOOK]
- case '\u01E8':
- // �\u2021¨ [LATIN CAPITAL LETTER K WITH CARON]
- case '\u1D0B':
- // á´�\u20ac� [LATIN LETTER SMALL CAPITAL K]
- case '\u1E30':
- // Ḱ [LATIN CAPITAL LETTER K WITH ACUTE]
- case '\u1E32':
- // Ḳ [LATIN CAPITAL LETTER K WITH DOT BELOW]
- case '\u1E34':
- // Ḵ [LATIN CAPITAL LETTER K WITH LINE BELOW]
- case '\u24C0':
- // â�\u20ac\u0153�\u201a� [CIRCLED LATIN CAPITAL LETTER K]
- case '\u2C69':
- // Ⱪ [LATIN CAPITAL LETTER K WITH DESCENDER]
- case '\uA740':
- // �\u201a� [LATIN CAPITAL LETTER K WITH STROKE]
- case '\uA742':
- // �\u20ac\u0161 [LATIN CAPITAL LETTER K WITH DIAGONAL STROKE]
- case '\uA744':
- // �\u20ac\u017e [LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE]
- case '\uFF2B': // K [FULLWIDTH LATIN CAPITAL LETTER K]
- output[outputPos++] = 'K';
- break;
-
- case '\u0137':
- // �\u201e· [LATIN SMALL LETTER K WITH CEDILLA]
- case '\u0199':
- // �\u2020�\u201e� [LATIN SMALL LETTER K WITH HOOK]
- case '\u01E9':
- // �\u2021© [LATIN SMALL LETTER K WITH CARON]
- case '\u029E':
- // �\u0160ž [LATIN SMALL LETTER TURNED K]
- case '\u1D84':
- // �\u20ac\u017e [LATIN SMALL LETTER K WITH PALATAL HOOK]
- case '\u1E31':
- // ḱ [LATIN SMALL LETTER K WITH ACUTE]
- case '\u1E33':
- // ḳ [LATIN SMALL LETTER K WITH DOT BELOW]
- case '\u1E35':
- // ḵ [LATIN SMALL LETTER K WITH LINE BELOW]
- case '\u24DA':
- // â�\u20ac\u0153š [CIRCLED LATIN SMALL LETTER K]
- case '\u2C6A':
- // ⱪ [LATIN SMALL LETTER K WITH DESCENDER]
- case '\uA741':
- // � [LATIN SMALL LETTER K WITH STROKE]
- case '\uA743':
- // �\u2019 [LATIN SMALL LETTER K WITH DIAGONAL STROKE]
- case '\uA745':
- // �\u20ac� [LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE]
- case '\uFF4B': // �\u20ac� [FULLWIDTH LATIN SMALL LETTER K]
- output[outputPos++] = 'k';
- break;
-
- case '\u24A6': // â�\u20ac\u2122¦ [PARENTHESIZED LATIN SMALL LETTER K]
- output[outputPos++] = '(';
- output[outputPos++] = 'k';
- output[outputPos++] = ')';
- break;
-
- case '\u0139':
- // �\u201e¹ [LATIN CAPITAL LETTER L WITH ACUTE]
- case '\u013B':
- // �\u201e» [LATIN CAPITAL LETTER L WITH CEDILLA]
- case '\u013D':
- // �\u201e½ [LATIN CAPITAL LETTER L WITH CARON]
- case '\u013F':
- // �\u201e¿ [LATIN CAPITAL LETTER L WITH MIDDLE DOT]
- case '\u0141':
- // �\u2026� [LATIN CAPITAL LETTER L WITH STROKE]
- case '\u023D':
- // �\u02c6½ [LATIN CAPITAL LETTER L WITH BAR]
- case '\u029F':
- // �\u0160Ÿ [LATIN LETTER SMALL CAPITAL L]
- case '\u1D0C':
- // á´�\u2019 [LATIN LETTER SMALL CAPITAL L WITH STROKE]
- case '\u1E36':
- // Ḷ [LATIN CAPITAL LETTER L WITH DOT BELOW]
- case '\u1E38':
- // Ḹ [LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON]
- case '\u1E3A':
- // Ḻ [LATIN CAPITAL LETTER L WITH LINE BELOW]
- case '\u1E3C':
- // Ḽ [LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW]
- case '\u24C1':
- // â�\u20ac\u0153� [CIRCLED LATIN CAPITAL LETTER L]
- case '\u2C60':
- // â± [LATIN CAPITAL LETTER L WITH DOUBLE BAR]
- case '\u2C62':
- // â±¢ [LATIN CAPITAL LETTER L WITH MIDDLE TILDE]
- case '\uA746':
- // �\u20ac� [LATIN CAPITAL LETTER BROKEN L]
- case '\uA748':
- // �\u2020 [LATIN CAPITAL LETTER L WITH HIGH STROKE]
- case '\uA780':
- // �\u201a� [LATIN CAPITAL LETTER TURNED L]
- case '\uFF2C': // L [FULLWIDTH LATIN CAPITAL LETTER L]
- output[outputPos++] = 'L';
- break;
-
- case '\u013A':
- // �\u201eº [LATIN SMALL LETTER L WITH ACUTE]
- case '\u013C':
- // �\u201e¼ [LATIN SMALL LETTER L WITH CEDILLA]
- case '\u013E':
- // �\u201e¾ [LATIN SMALL LETTER L WITH CARON]
- case '\u0140':
- // �\u2026�\u201a� [LATIN SMALL LETTER L WITH MIDDLE DOT]
- case '\u0142':
- // �\u2026�\u20ac\u0161 [LATIN SMALL LETTER L WITH STROKE]
- case '\u019A':
- // �\u2020š [LATIN SMALL LETTER L WITH BAR]
- case '\u0234':
- // �\u02c6´ [LATIN SMALL LETTER L WITH CURL]
- case '\u026B':
- // �\u2030« [LATIN SMALL LETTER L WITH MIDDLE TILDE]
- case '\u026C':
- // �\u2030¬ [LATIN SMALL LETTER L WITH BELT]
- case '\u026D':
- // �\u2030 [LATIN SMALL LETTER L WITH RETROFLEX HOOK]
- case '\u1D85':
- // �\u20ac� [LATIN SMALL LETTER L WITH PALATAL HOOK]
- case '\u1E37':
- // ḷ [LATIN SMALL LETTER L WITH DOT BELOW]
- case '\u1E39':
- // ḹ [LATIN SMALL LETTER L WITH DOT BELOW AND MACRON]
- case '\u1E3B':
- // ḻ [LATIN SMALL LETTER L WITH LINE BELOW]
- case '\u1E3D':
- // ḽ [LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW]
- case '\u24DB':
- // â�\u20ac\u0153�\u20ac� [CIRCLED LATIN SMALL LETTER L]
- case '\u2C61':
- // ⱡ [LATIN SMALL LETTER L WITH DOUBLE BAR]
- case '\uA747':
- // �\u20ac� [LATIN SMALL LETTER BROKEN L]
- case '\uA749':
- // �\u20ac� [LATIN SMALL LETTER L WITH HIGH STROKE]
- case '\uA781':
- // � [LATIN SMALL LETTER TURNED L]
- case '\uFF4C': // �\u2019 [FULLWIDTH LATIN SMALL LETTER L]
- output[outputPos++] = 'l';
- break;
-
- case '\u01C7': // �\u2021�\u20ac� [LATIN CAPITAL LETTER LJ]
- output[outputPos++] = 'L';
- output[outputPos++] = 'J';
- break;
-
- case '\u1EFA': // Ỻ [LATIN CAPITAL LETTER MIDDLE-WELSH LL]
- output[outputPos++] = 'L';
- output[outputPos++] = 'L';
- break;
-
- case '\u01C8': // �\u2021�\u2020 [LATIN CAPITAL LETTER L WITH SMALL LETTER J]
- output[outputPos++] = 'L';
- output[outputPos++] = 'j';
- break;
-
- case '\u24A7': // â�\u20ac\u2122§ [PARENTHESIZED LATIN SMALL LETTER L]
- output[outputPos++] = '(';
- output[outputPos++] = 'l';
- output[outputPos++] = ')';
- break;
-
- case '\u01C9': // �\u2021�\u20ac� [LATIN SMALL LETTER LJ]
- output[outputPos++] = 'l';
- output[outputPos++] = 'j';
- break;
-
- case '\u1EFB': // á»» [LATIN SMALL LETTER MIDDLE-WELSH LL]
- output[outputPos++] = 'l';
- output[outputPos++] = 'l';
- break;
-
- case '\u02AA': // �\u0160ª [LATIN SMALL LETTER LS DIGRAPH]
- output[outputPos++] = 'l';
- output[outputPos++] = 's';
- break;
-
- case '\u02AB': // �\u0160« [LATIN SMALL LETTER LZ DIGRAPH]
- output[outputPos++] = 'l';
- output[outputPos++] = 'z';
- break;
-
- case '\u019C':
- // �\u2020�\u201c [LATIN CAPITAL LETTER TURNED M]
- case '\u1D0D':
- // á´� [LATIN LETTER SMALL CAPITAL M]
- case '\u1E3E':
- // Ḿ [LATIN CAPITAL LETTER M WITH ACUTE]
- case '\u1E40':
- // �\u201a� [LATIN CAPITAL LETTER M WITH DOT ABOVE]
- case '\u1E42':
- // �\u20ac\u0161 [LATIN CAPITAL LETTER M WITH DOT BELOW]
- case '\u24C2':
- // â�\u20ac\u0153�\u20ac\u0161 [CIRCLED LATIN CAPITAL LETTER M]
- case '\u2C6E':
- // â±® [LATIN CAPITAL LETTER M WITH HOOK]
- case '\uA7FD':
- // ꟽ [LATIN EPIGRAPHIC LETTER INVERTED M]
- case '\uA7FF':
- // ꟿ [LATIN EPIGRAPHIC LETTER ARCHAIC M]
- case '\uFF2D': // ï¼ [FULLWIDTH LATIN CAPITAL LETTER M]
- output[outputPos++] = 'M';
- break;
-
- case '\u026F':
- // �\u2030¯ [LATIN SMALL LETTER TURNED M]
- case '\u0270':
- // �\u2030° [LATIN SMALL LETTER TURNED M WITH LONG LEG]
- case '\u0271':
- // �\u2030± [LATIN SMALL LETTER M WITH HOOK]
- case '\u1D6F':
- // ᵯ [LATIN SMALL LETTER M WITH MIDDLE TILDE]
- case '\u1D86':
- // �\u20ac� [LATIN SMALL LETTER M WITH PALATAL HOOK]
- case '\u1E3F':
- // ḿ [LATIN SMALL LETTER M WITH ACUTE]
- case '\u1E41':
- // � [LATIN SMALL LETTER M WITH DOT ABOVE]
- case '\u1E43':
- // �\u2019 [LATIN SMALL LETTER M WITH DOT BELOW]
- case '\u24DC':
- // â�\u20ac\u0153�\u201c [CIRCLED LATIN SMALL LETTER M]
- case '\uFF4D': // � [FULLWIDTH LATIN SMALL LETTER M]
- output[outputPos++] = 'm';
- break;
-
- case '\u24A8': // â�\u20ac\u2122¨ [PARENTHESIZED LATIN SMALL LETTER M]
- output[outputPos++] = '(';
- output[outputPos++] = 'm';
- output[outputPos++] = ')';
- break;
-
- case '\u00D1':
- // �\u0192�\u20ac\u02dc [LATIN CAPITAL LETTER N WITH TILDE]
- case '\u0143':
- // �\u2026�\u2019 [LATIN CAPITAL LETTER N WITH ACUTE]
- case '\u0145':
- // �\u2026�\u20ac� [LATIN CAPITAL LETTER N WITH CEDILLA]
- case '\u0147':
- // �\u2026�\u20ac� [LATIN CAPITAL LETTER N WITH CARON]
- case '\u014A':
- // �\u2026Š http://en.wikipedia.org/wiki/Eng_(letter) [LATIN CAPITAL LETTER ENG]
- case '\u019D':
- // �\u2020� [LATIN CAPITAL LETTER N WITH LEFT HOOK]
- case '\u01F8':
- // �\u2021¸ [LATIN CAPITAL LETTER N WITH GRAVE]
- case '\u0220':
- // �\u02c6 [LATIN CAPITAL LETTER N WITH LONG RIGHT LEG]
- case '\u0274':
- // �\u2030´ [LATIN LETTER SMALL CAPITAL N]
- case '\u1D0E':
- // á´Ž [LATIN LETTER SMALL CAPITAL REVERSED N]
- case '\u1E44':
- // �\u20ac\u017e [LATIN CAPITAL LETTER N WITH DOT ABOVE]
- case '\u1E46':
- // �\u20ac� [LATIN CAPITAL LETTER N WITH DOT BELOW]
- case '\u1E48':
- // �\u2020 [LATIN CAPITAL LETTER N WITH LINE BELOW]
- case '\u1E4A':
- // Ṋ [LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW]
- case '\u24C3':
- // â�\u20ac\u0153�\u2019 [CIRCLED LATIN CAPITAL LETTER N]
- case '\uFF2E': // ï¼® [FULLWIDTH LATIN CAPITAL LETTER N]
- output[outputPos++] = 'N';
- break;
-
- case '\u00F1':
- // �\u0192± [LATIN SMALL LETTER N WITH TILDE]
- case '\u0144':
- // �\u2026�\u20ac\u017e [LATIN SMALL LETTER N WITH ACUTE]
- case '\u0146':
- // �\u2026�\u20ac� [LATIN SMALL LETTER N WITH CEDILLA]
- case '\u0148':
- // �\u2026�\u2020 [LATIN SMALL LETTER N WITH CARON]
- case '\u0149':
- // �\u2026�\u20ac� [LATIN SMALL LETTER N PRECEDED BY APOSTROPHE]
- case '\u014B':
- // �\u2026�\u20ac� http://en.wikipedia.org/wiki/Eng_(letter) [LATIN SMALL LETTER ENG]
- case '\u019E':
- // �\u2020ž [LATIN SMALL LETTER N WITH LONG RIGHT LEG]
- case '\u01F9':
- // �\u2021¹ [LATIN SMALL LETTER N WITH GRAVE]
- case '\u0235':
- // �\u02c6µ [LATIN SMALL LETTER N WITH CURL]
- case '\u0272':
- // �\u2030² [LATIN SMALL LETTER N WITH LEFT HOOK]
- case '\u0273':
- // �\u2030³ [LATIN SMALL LETTER N WITH RETROFLEX HOOK]
- case '\u1D70':
- // áµ° [LATIN SMALL LETTER N WITH MIDDLE TILDE]
- case '\u1D87':
- // �\u20ac� [LATIN SMALL LETTER N WITH PALATAL HOOK]
- case '\u1E45':
- // �\u20ac� [LATIN SMALL LETTER N WITH DOT ABOVE]
- case '\u1E47':
- // �\u20ac� [LATIN SMALL LETTER N WITH DOT BELOW]
- case '\u1E49':
- // �\u20ac� [LATIN SMALL LETTER N WITH LINE BELOW]
- case '\u1E4B':
- // �\u20ac� [LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW]
- case '\u207F':
- // � [SUPERSCRIPT LATIN SMALL LETTER N]
- case '\u24DD':
- // â�\u20ac\u0153� [CIRCLED LATIN SMALL LETTER N]
- case '\uFF4E': // n [FULLWIDTH LATIN SMALL LETTER N]
- output[outputPos++] = 'n';
- break;
-
- case '\u01CA': // �\u2021Š [LATIN CAPITAL LETTER NJ]
- output[outputPos++] = 'N';
- output[outputPos++] = 'J';
- break;
-
- case '\u01CB': // �\u2021�\u20ac� [LATIN CAPITAL LETTER N WITH SMALL LETTER J]
- output[outputPos++] = 'N';
- output[outputPos++] = 'j';
- break;
-
- case '\u24A9': // â�\u20ac\u2122© [PARENTHESIZED LATIN SMALL LETTER N]
- output[outputPos++] = '(';
- output[outputPos++] = 'n';
- output[outputPos++] = ')';
- break;
-
- case '\u01CC': // �\u2021�\u2019 [LATIN SMALL LETTER NJ]
- output[outputPos++] = 'n';
- output[outputPos++] = 'j';
- break;
-
- case '\u00D2':
- // �\u0192�\u20ac\u2122 [LATIN CAPITAL LETTER O WITH GRAVE]
- case '\u00D3':
- // �\u0192�\u20ac\u0153 [LATIN CAPITAL LETTER O WITH ACUTE]
- case '\u00D4':
- // �\u0192�? [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
- case '\u00D5':
- // �\u0192�\u20ac� [LATIN CAPITAL LETTER O WITH TILDE]
- case '\u00D6':
- // �\u0192�\u20ac\u201c [LATIN CAPITAL LETTER O WITH DIAERESIS]
- case '\u00D8':
- // �\u0192�\u0153 [LATIN CAPITAL LETTER O WITH STROKE]
- case '\u014C':
- // �\u2026�\u2019 [LATIN CAPITAL LETTER O WITH MACRON]
- case '\u014E':
- // �\u2026Ž [LATIN CAPITAL LETTER O WITH BREVE]
- case '\u0150':
- // �\u2026� [LATIN CAPITAL LETTER O WITH DOUBLE ACUTE]
- case '\u0186':
- // �\u2020�\u20ac� [LATIN CAPITAL LETTER OPEN O]
- case '\u019F':
- // �\u2020Ÿ [LATIN CAPITAL LETTER O WITH MIDDLE TILDE]
- case '\u01A0':
- // �\u2020 [LATIN CAPITAL LETTER O WITH HORN]
- case '\u01D1':
- // �\u2021�\u20ac\u02dc [LATIN CAPITAL LETTER O WITH CARON]
- case '\u01EA':
- // �\u2021ª [LATIN CAPITAL LETTER O WITH OGONEK]
- case '\u01EC':
- // �\u2021¬ [LATIN CAPITAL LETTER O WITH OGONEK AND MACRON]
- case '\u01FE':
- // �\u2021¾ [LATIN CAPITAL LETTER O WITH STROKE AND ACUTE]
- case '\u020C':
- // �\u02c6�\u2019 [LATIN CAPITAL LETTER O WITH DOUBLE GRAVE]
- case '\u020E':
- // �\u02c6Ž [LATIN CAPITAL LETTER O WITH INVERTED BREVE]
- case '\u022A':
- // �\u02c6ª [LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON]
- case '\u022C':
- // �\u02c6¬ [LATIN CAPITAL LETTER O WITH TILDE AND MACRON]
- case '\u022E':
- // �\u02c6® [LATIN CAPITAL LETTER O WITH DOT ABOVE]
- case '\u0230':
- // �\u02c6° [LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON]
- case '\u1D0F':
- // á´� [LATIN LETTER SMALL CAPITAL O]
- case '\u1D10':
- // á´� [LATIN LETTER SMALL CAPITAL OPEN O]
- case '\u1E4C':
- // �\u2019 [LATIN CAPITAL LETTER O WITH TILDE AND ACUTE]
- case '\u1E4E':
- // Ṏ [LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS]
- case '\u1E50':
- // � [LATIN CAPITAL LETTER O WITH MACRON AND GRAVE]
- case '\u1E52':
- // �\u20ac\u2122 [LATIN CAPITAL LETTER O WITH MACRON AND ACUTE]
- case '\u1ECC':
- // �\u2019 [LATIN CAPITAL LETTER O WITH DOT BELOW]
- case '\u1ECE':
- // Ỏ [LATIN CAPITAL LETTER O WITH HOOK ABOVE]
- case '\u1ED0':
- // � [LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE]
- case '\u1ED2':
- // �\u20ac\u2122 [LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE]
- case '\u1ED4':
- // �? [LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE]
- case '\u1ED6':
- // �\u20ac\u201c [LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE]
- case '\u1ED8':
- // �\u0153 [LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW]
- case '\u1EDA':
- // Ớ [LATIN CAPITAL LETTER O WITH HORN AND ACUTE]
- case '\u1EDC':
- // �\u201c [LATIN CAPITAL LETTER O WITH HORN AND GRAVE]
- case '\u1EDE':
- // Ở [LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE]
- case '\u1EE0':
- // á» [LATIN CAPITAL LETTER O WITH HORN AND TILDE]
- case '\u1EE2':
- // Ợ [LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW]
- case '\u24C4':
- // â�\u20ac\u0153�\u20ac\u017e [CIRCLED LATIN CAPITAL LETTER O]
- case '\uA74A':
- // � [LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY]
- case '\uA74C':
- // �\u2019 [LATIN CAPITAL LETTER O WITH LOOP]
- case '\uFF2F': // O [FULLWIDTH LATIN CAPITAL LETTER O]
- output[outputPos++] = 'O';
- break;
-
- case '\u00F2':
- // �\u0192² [LATIN SMALL LETTER O WITH GRAVE]
- case '\u00F3':
- // �\u0192³ [LATIN SMALL LETTER O WITH ACUTE]
- case '\u00F4':
- // �\u0192´ [LATIN SMALL LETTER O WITH CIRCUMFLEX]
- case '\u00F5':
- // �\u0192µ [LATIN SMALL LETTER O WITH TILDE]
- case '\u00F6':
- // �\u0192¶ [LATIN SMALL LETTER O WITH DIAERESIS]
- case '\u00F8':
- // �\u0192¸ [LATIN SMALL LETTER O WITH STROKE]
- case '\u014D':
- // �\u2026� [LATIN SMALL LETTER O WITH MACRON]
- case '\u014F':
- // �\u2026� [LATIN SMALL LETTER O WITH BREVE]
- case '\u0151':
- // �\u2026�\u20ac\u02dc [LATIN SMALL LETTER O WITH DOUBLE ACUTE]
- case '\u01A1':
- // �\u2020¡ [LATIN SMALL LETTER O WITH HORN]
- case '\u01D2':
- // �\u2021�\u20ac\u2122 [LATIN SMALL LETTER O WITH CARON]
- case '\u01EB':
- // �\u2021« [LATIN SMALL LETTER O WITH OGONEK]
- case '\u01ED':
- // �\u2021 [LATIN SMALL LETTER O WITH OGONEK AND MACRON]
- case '\u01FF':
- // �\u2021¿ [LATIN SMALL LETTER O WITH STROKE AND ACUTE]
- case '\u020D':
- // �\u02c6� [LATIN SMALL LETTER O WITH DOUBLE GRAVE]
- case '\u020F':
- // �\u02c6� [LATIN SMALL LETTER O WITH INVERTED BREVE]
- case '\u022B':
- // �\u02c6« [LATIN SMALL LETTER O WITH DIAERESIS AND MACRON]
- case '\u022D':
- // �\u02c6 [LATIN SMALL LETTER O WITH TILDE AND MACRON]
- case '\u022F':
- // �\u02c6¯ [LATIN SMALL LETTER O WITH DOT ABOVE]
- case '\u0231':
- // �\u02c6± [LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON]
- case '\u0254':
- // �\u2030�? [LATIN SMALL LETTER OPEN O]
- case '\u0275':
- // �\u2030µ [LATIN SMALL LETTER BARRED O]
- case '\u1D16':
- // á´�\u20ac\u201c [LATIN SMALL LETTER TOP HALF O]
- case '\u1D17':
- // á´�\u20ac\u201d [LATIN SMALL LETTER BOTTOM HALF O]
- case '\u1D97':
- // �\u20ac\u201d [LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK]
- case '\u1E4D':
- // � [LATIN SMALL LETTER O WITH TILDE AND ACUTE]
- case '\u1E4F':
- // � [LATIN SMALL LETTER O WITH TILDE AND DIAERESIS]
- case '\u1E51':
- // �\u20ac\u02dc [LATIN SMALL LETTER O WITH MACRON AND GRAVE]
- case '\u1E53':
- // �\u20ac\u0153 [LATIN SMALL LETTER O WITH MACRON AND ACUT
<TRUNCATED>