SC22/WG20 N834

Collation Items for Discussion

  1. Stability [UCA & 14651]
  2. Small Fixes [UCA & 14651]
  3. Questionable Order [UCA & 14651]
  4. Field Separator [UCA only?]
  5. Tailoring Syntax [UCA only]

Stability Policies for UCA and 14651

  1. Main rule: wherever possible, do not disturb existing weight values.
  2. Only add new primary weights for new scripts at the end. That is, don't insert new scripts between existing ones. When adding new variable (ignorable) weights, add after the last variable weight (currently 13CF ETHIOPIC NUMBER TEN THOUSAND)
  3. For new secondary weights, add at the end if possible.
  4. For new tertiary weights, only add at the end. Avoid adding any new ones where possible.
  5. When making bug fixes, try to disturb the existing weights as little as possible. E.g. if a value is moved, leave a hole.

Field Separator Motivation

Here is an example of why a field separator would be useful:

  1. Suppose that you need to sort a database by LastName and FirstName. If you sort by LastName, then FirstName, then primary differences in the FirstName are swamped by secondary, tertiary, or even ignorable differences in the LastName, and the data appears to be out of order.
  2. If you sort by LastName (with strength == primaryOnly), then the FirstName differences are accounted for. However, other differences in LastName are ignored, and come out in random order, or are swamped by trivial differences in FirstName.
  3. If you sort by LastName + FirstName (simple concatenation), then the ends of some LastNames are compared against the starts of some FirstNames, again producing odd orderings.
  4. If you sort by LastName + [U+0F05 WHITE UP-POINTING SMALL TRIANGLE] + FirstName, then that corrects the problem in #3. Since 0F05 comes before all other characters, if one LastName is longer than another it will still sort correctly. However, this has two problems.
    1. 0F05 is a valid graphic character, and could appear in text. To prevent mismatches it would have to be escaped or specially handled.
    2. If variables are not ignorable, then there are other, lower, characters.
  5. By reserving a special character as described above, one can sort LastName + "¤" + FirstName (using ¤ for the field separator). This avoids all the above problems. While one could also do this with a special API, by reserving one character it makes the sorting behavior more compatible across implementations.

Tailoring Differences

Here is a programmatic report of the tailoring rules for each language, and the resulting differences from UCA. A brief description of the syntax:

Key
x < y primary difference
x << y secondary difference
x <<< y tertiary difference
x = y identical
& x start with x (tailoring)

In tailoring, the above relations are interpreted as commands: e.g. "x < y" means "make it so that x < y". In the DIFF section, they report the relations. For example, the line

 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č

means: there is a difference between how the sequences <U+0043> and <U+0063, U+030C> are sorted between "tailoring" and "UCA". In particular, in the tailoring "C" is primary less-than "č", but in UCA "C" is secondary-less than "č".

Note: all forms are decomposed below, so "č" is equivalent to "č".

Data

Testing locale ar (Arabic), LCID 0001
Rules:[normalization on]
&  Z <  ء<< آ<< أ<< ؤ<< إ<< ئ< ا< ب
< پ< ة= ت< ث< ج< چ< ح< خ< د<
 ذ< ر< ز< ژ< س< ش< ص< ض< ط<
ظ< ع< غ< ف< ق< ك< گ< ل< م< ن
< ه< و< ى<< ي< ٰ< ٱ< ٲ< ٳ< ٴ
< ٵ< ٶ< ٷ< ٸ< ٹ< ٺ< ٻ< ټ< ٽ<
 ٿ< ڀ< ځ< ڂ< ڃ< ڄ< څ< ڇ< ڈ<
ډ< ڊ< ڋ< ڌ< ڍ< ڎ< ڏ< ڐ< ڑ< ڒ
< ړ< ڔ< ڕ< ږ< ڗ< ڙ< ښ< ڛ< ڜ<
 ڝ< ڞ< ڟ< ڠ< ڡ< ڢ< ڣ< ڤ< ڥ<
ڦ< ڧ< ڨ< ک< ڪ< ګ< ڬ< ڭ< ڮ< ڰ
< ڱ< ڲ< ڳ< ڴ< ڵ< ڶ< ڷ< ں< ڻ<
 ڼ< ڽ< ھ< ۀ< ہ< ۂ< ۃ< ۄ< ۅ<
ۆ< ۇ< ۈ< ۉ< ۊ< ۋ< ی< ۍ< ێ< ې
< ۑ< ے< ۓ< ە< ّ
 DIFF: 0621  : 0622 tailoring: ء<<آ UCA: ء<آ
 DIFF: 0622  : 0623 tailoring: آ<<أ UCA: آ<أ
 DIFF: 0623  : 0624 tailoring: أ<<ؤ UCA: أ<ؤ
 DIFF: 0624  : 0625 tailoring: ؤ<<إ UCA: ؤ<إ
 DIFF: 0625  : 0626 tailoring: إ<<ئ UCA: إ<ئ
 DIFF: 0629  : 062A tailoring: ة==ت UCA: ة<ت
 DIFF: 0649  : 064A tailoring: ى<<ي UCA: ى<ي
 DIFF: 064A  : 0670 tailoring: ي<ٰ UCA: ي>ٰ
 DIFF: 0671  : 0672 tailoring: ٱ<ٲ UCA: ٱ>ٲ
 DIFF: 0673  : 0674 tailoring: ٳ<ٴ UCA: ٳ>ٴ
 DIFF: 0678  : 0679 tailoring: ٸ<ٹ UCA: ٸ>ٹ
 DIFF: 067A  : 067B tailoring: ٺ<ٻ UCA: ٺ>ٻ
 DIFF: 067F  : 0680 tailoring: ٿ<ڀ UCA: ٿ>ڀ
 DIFF: 0682  : 0683 tailoring: ڂ<ڃ UCA: ڂ>ڃ
 DIFF: 0685  : 0687 tailoring: څ<ڇ UCA: څ>ڇ
 DIFF: 06C0  : 06C1 tailoring: ۀ<ہ UCA: ۀ>ہ
 DIFF: 06C1  : 06C2 tailoring: ہ<ۂ UCA: ہ<<ۂ
 DIFF: 06D2  : 06D3 tailoring: ے<ۓ UCA: ے<<ۓ
 DIFF: 06D3  : 06D5 tailoring: ۓ<ە UCA: ۓ>ە
 DIFF: 06D5  : 0651 tailoring: ە<ّ UCA: ە>ّ
 
 
Testing locale be (Belarusian), LCID 0023
Rules:
&Е < ё<<< Ё
 DIFF: 0415  : 0451 tailoring: Е<ё UCA: Е<<ё
 
 
Testing locale ca (Catalan), LCID 0003
Rules:@
 No immediate difference with UCA!
 
Testing locale cs (Czech), LCID 0005
Rules:
& C < č <<< Č
& H < ch <<< cH <<< Ch <<< CH
& R < ř <<< Ř
& S < š <<< Š
& Z < ž <<< Ž
 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č
 DIFF: 0048  : 0063 0068 tailoring: H<ch UCA: H>ch
 DIFF: 0052  : 0072 030C tailoring: R<ř UCA: R<<ř
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale da (Danish), LCID 0006
Rules:
& A < ǽ <<< Ǽ
& Z < æ <<< Æ<< ä <<< Ä < ø <<< Ø << ö
 <<< Ö << ő<<< Ő< å <<< Å<<< aa <<< aA <<<
Aa <<< AA
& V<<< w<<< W
& Y << ü <<< Ü
&D < ð<<< Ð
&T < þ<<< Þ
 DIFF: 005A  : 00E6 tailoring: Z<æ UCA: Z>æ
 DIFF: 00C6  : 0061 0308 tailoring: Æ<<ä UCA: Æ>ä
 DIFF: 00D8  : 006F 0308 tailoring: Ø<<ö UCA: Ø>ö
 DIFF: 004F 030B  : 0061 030A tailoring: Ő<å UCA: Ő>å
 DIFF: 0041 030A  : 0061 0061 tailoring: Å<<<aa UCA: Å<aa
 DIFF: 0056  : 0077 tailoring: V<<<w UCA: V<w
 DIFF: 0059  : 0075 0308 tailoring: Y<<ü UCA: Y>ü
 
 
Testing locale el (Greek), LCID 0008
Rules:[normalization on]
 No immediate difference with UCA!
 
Testing locale en_BE (English (Belgium)), LCID 0009
Rules:[backwards 2]
 No immediate difference with UCA!
 
Testing locale en_US_POSIX (English (United States, POSIX)), LCID 0409
Rules:
& '@' < A < B < C < D < E < F < G < H < I < J < K < L < M < N < O < P < Q
 < R < S < T < U < V < W < X < Y < Z
& '`' < a < b < c < d < e < f < g < h < i < j < k < l < m < n < o < p < q
 < r < s < t < u < v < w < x < y < z
& '¿' < À < Á < Â < Ã < Ä < Å < Æ
 < Ç < È < É < Ê < Ë < Ì < Í < Î
< Ï < Ð < Ñ < Ò < Ó < Ô < Õ < Ö <
 × < Ø < Ù < Ú < Û < Ü < Ý < Þ <
ß < à < á < â < ã < ä < å < æ < ç
 < è < é < ê < ë < ì < í < î < ï
< ð < ñ < ò < ó < ô < õ < ö < ÷ <
 ø < ù < ú < û < ü < ý < þ < ÿ
 DIFF: 00C0  : 00C1 tailoring: À<Á UCA: À>Á
 DIFF: 00C1  : 00C2 tailoring: Á<Â UCA: Á<<Â
 DIFF: 00C2  : 00C3 tailoring: Â<Ã UCA: Â<<Ã
 DIFF: 00C3  : 00C4 tailoring: Ã<Ä UCA: Ã>Ä
 DIFF: 00C4  : 00C5 tailoring: Ä<Å UCA: Ä>Å
 DIFF: 00C8  : 00C9 tailoring: È<É UCA: È>É
 DIFF: 00C9  : 00CA tailoring: É<Ê UCA: É<<Ê
 DIFF: 00CA  : 00CB tailoring: Ê<Ë UCA: Ê<<Ë
 DIFF: 00CC  : 00CD tailoring: Ì<Í UCA: Ì>Í
 DIFF: 00CD  : 00CE tailoring: Í<Î UCA: Í<<Î
 DIFF: 00CE  : 00CF tailoring: Î<Ï UCA: Î<<Ï
 DIFF: 00CF  : 00D0 tailoring: Ï<Ð UCA: Ï>Ð
 DIFF: 00D2  : 00D3 tailoring: Ò<Ó UCA: Ò>Ó
 DIFF: 00D3  : 00D4 tailoring: Ó<Ô UCA: Ó<<Ô
 DIFF: 00D4  : 00D5 tailoring: Ô<Õ UCA: Ô<<Õ
 DIFF: 00D5  : 00D6 tailoring: Õ<Ö UCA: Õ>Ö
 DIFF: 00D6  : 00D7 tailoring: Ö<× UCA: Ö>×
 DIFF: 00D9  : 00DA tailoring: Ù<Ú UCA: Ù>Ú
 DIFF: 00DA  : 00DB tailoring: Ú<Û UCA: Ú<<Û
 DIFF: 00DB  : 00DC tailoring: Û<Ü UCA: Û<<Ü
 DIFF: 00DE  : 00DF tailoring: Þ<ß UCA: Þ>ß
 DIFF: 00DF  : 00E0 tailoring: ß<à UCA: ß>à
 DIFF: 00E0  : 00E1 tailoring: à<á UCA: à>á
 DIFF: 00E1  : 00E2 tailoring: á<â UCA: á<<â
 DIFF: 00E2  : 00E3 tailoring: â<ã UCA: â<<ã
 DIFF: 00E3  : 00E4 tailoring: ã<ä UCA: ã>ä
 DIFF: 00E4  : 00E5 tailoring: ä<å UCA: ä>å
 DIFF: 00E8  : 00E9 tailoring: è<é UCA: è>é
 DIFF: 00E9  : 00EA tailoring: é<ê UCA: é<<ê
 DIFF: 00EA  : 00EB tailoring: ê<ë UCA: ê<<ë
 DIFF: 00EC  : 00ED tailoring: ì<í UCA: ì>í
 DIFF: 00ED  : 00EE tailoring: í<î UCA: í<<î
 DIFF: 00EE  : 00EF tailoring: î<ï UCA: î<<ï
 DIFF: 00EF  : 00F0 tailoring: ï<ð UCA: ï>ð
 DIFF: 00F2  : 00F3 tailoring: ò<ó UCA: ò>ó
 DIFF: 00F3  : 00F4 tailoring: ó<ô UCA: ó<<ô
 DIFF: 00F4  : 00F5 tailoring: ô<õ UCA: ô<<õ
 DIFF: 00F5  : 00F6 tailoring: õ<ö UCA: õ>ö
 DIFF: 00F6  : 00F7 tailoring: ö<÷ UCA: ö>÷
 DIFF: 00F9  : 00FA tailoring: ù<ú UCA: ù>ú
 DIFF: 00FA  : 00FB tailoring: ú<û UCA: ú<<û
 DIFF: 00FB  : 00FC tailoring: û<ü UCA: û<<ü
 DIFF: 00FE  : 00FF tailoring: þ<ÿ UCA: þ>ÿ
 
 
Testing locale el (Greek), LCID 0008
Rules:[normalization on]
 No immediate difference with UCA!
 
Testing locale es (Spanish), LCID 000A
Rules:
& N < ñ<<< Ñ 
 DIFF: 004E  : 006E 0303 tailoring: N<ñ UCA: N<<ñ
 
 
Testing locale et (Estonian), LCID 0025
Rules:@
& S < š<<< Š < z <<< Z < ž <<< Ž
& V << w <<< W < õ <<< Õ< ä <<< Ä < ö <<< O
̈ << ŵ <<< Ŵ< ü <<< Ü
& Y < ƶ <<< Ƶ 
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 DIFF: 0056  : 0077 tailoring: V<<w UCA: V<w
 DIFF: 0057  : 006F 0303 tailoring: W<õ UCA: W>õ
 DIFF: 004F 0303  : 0061 0308 tailoring: Õ<ä UCA: Õ>ä
 DIFF: 004F 0308  : 0077 0302 tailoring: Ö<<ŵ UCA: Ö<ŵ
 DIFF: 0057 0302  : 0075 0308 tailoring: Ŵ<ü UCA: Ŵ>ü
 
 
Testing locale fi (Finnish), LCID 000B
Rules:
& V << w <<< W
& Z < å <<< Å< ä <<< Ä < ö <<< Ö< ő
 <<< Ő << ø <<< Ø
&  Y << ű<<< Ű << ü <<< Ü
 DIFF: 0056  : 0077 tailoring: V<<w UCA: V<w
 DIFF: 005A  : 0061 030A tailoring: Z<å UCA: Z>å
 DIFF: 0041 030A  : 0061 0308 tailoring: Å<ä UCA: Å<<ä
 DIFF: 004F 0308  : 006F 030B tailoring: Ö<ő UCA: Ö<<ő
 DIFF: 004F 030B  : 00F8 tailoring: Ő<<ø UCA: Ő<ø
 DIFF: 0059  : 0075 030B tailoring: Y<<ű UCA: Y>ű
 DIFF: 0055 030B  : 0075 0308 tailoring: Ű<<ü UCA: Ű>ü
 
 
Testing locale fr (French), LCID 000C
Rules:[backwards 2]
&A<<æ/e<<<Æ/E
 DIFF: 0041 0065  : 00E6 tailoring: Ae<<æ UCA: Ae<æ
 DIFF: 00E6 0045  : 00C6 tailoring: æE<<<Æ UCA: æE>Æ
 
 
Testing locale he (Hebrew), LCID 000D
Rules:[normalization on]
& Z < א < ב < ג < ד < ה < ו < װ < ױ
 < ז < ח < ט < י < ײ < ך <<< כ < ל
 < ם <<< מ < ן <<< נ < ס < ע < ף <<< פ
 < ץ <<< צ < ק < ר < ש < ת 
 DIFF: 05DA  : 05DB tailoring: ך<<<כ UCA: ך>כ
 DIFF: 05DD  : 05DE tailoring: ם<<<מ UCA: ם>מ
 DIFF: 05DF  : 05E0 tailoring: ן<<<נ UCA: ן>נ
 DIFF: 05E3  : 05E4 tailoring: ף<<<פ UCA: ף>פ
 DIFF: 05E5  : 05E6 tailoring: ץ<<<צ UCA: ץ>צ
 
 
Testing locale hi (Hindi), LCID 0039
Rules:[normalization on]< ँ < ं < ः < अ < आ < इ <
 ई < उ < ऊ < ऋ < ॠ < ऎ < ए < ऌ <
ॡ < ऐ < ऍ < ऒ < ओ < औ < ऑ < क < क़
 < ख < ख़ < ग < ग़ < घ < ङ < च < छ
<   ज< ज़ < झ < ञ < ट < ठ < ड < ड़
<   ढ< ढ़ < ण < त < थ < द < ध < न
<   ऩ< प < फ < फ़ < ब < भ < म < य
<   य़< र < ऱ < ल < ळ < ऴ < व < श
<   ष< स < ह < ा < ि < ी < ु < ू
<   ृ< ॄ < ॆ < े < ै < ॅ < ॊ < ो
<   ौ< ॉ < ् < ़ < ऽ < ॐ < ॑ < ॒
<   ॓< ॔ < ॢ < ॣ < । < ॥ < ० < १
<   २< ३ < ४ < ५ < ६ < ७ < ८ < ९
<   ॰
 DIFF: 0901  : 0902 tailoring: ँ<ं UCA: ँ<<ं
 DIFF: 0902  : 0903 tailoring: ं<ः UCA: ं<<ः
 DIFF: 090F  : 090C tailoring: ए<ऌ UCA: ए>ऌ
 DIFF: 0910  : 090D tailoring: ऐ<ऍ UCA: ऐ>ऍ
 DIFF: 0914  : 0911 tailoring: औ<ऑ UCA: औ>ऑ
 DIFF: 0915  : 0958 tailoring: क<क़ UCA: क<<क़
 DIFF: 0916  : 0959 tailoring: ख<ख़ UCA: ख<<ख़
 DIFF: 0917  : 095A tailoring: ग<ग़ UCA: ग<<ग़
 DIFF: 091C  : 095B tailoring: ज<ज़ UCA: ज<<ज़
 DIFF: 0921  : 095C tailoring: ड<ड़ UCA: ड<<ड़
 DIFF: 0922  : 095D tailoring: ढ<ढ़ UCA: ढ<<ढ़
 DIFF: 0928  : 0929 tailoring: न<ऩ UCA: न<<ऩ
 DIFF: 092B  : 095E tailoring: फ<फ़ UCA: फ<<फ़
 DIFF: 092F  : 095F tailoring: य<य़ UCA: य<<य़
 DIFF: 0930  : 0931 tailoring: र<ऱ UCA: र<<ऱ
 DIFF: 0933  : 0934 tailoring: ळ<ऴ UCA: ळ<<ऴ
 DIFF: 0948  : 0945 tailoring: ै<ॅ UCA: ै>ॅ
 DIFF: 094C  : 0949 tailoring: ौ<ॉ UCA: ौ>ॉ
 DIFF: 094D  : 093C tailoring: ्<़ UCA: ्>़
 DIFF: 093D  : 0950 tailoring: ऽ<ॐ UCA: ऽ>ॐ
 DIFF: 0950  : 0951 tailoring: ॐ<॑ UCA: ॐ>॑
 DIFF: 0951  : 0952 tailoring: ॑<॒ UCA: ॑<<॒
 DIFF: 0952  : 0953 tailoring: ॒<॓ UCA: ॒<<॓
 DIFF: 0953  : 0954 tailoring: ॓<॔ UCA: ॓<<॔
 DIFF: 0963  : 0964 tailoring: ॣ<। UCA: ॣ>।
 DIFF: 096F  : 0970 tailoring: ९<॰ UCA: ९>॰
 
 
Testing locale hr (Croatian), LCID 001A
Rules:
& C < č<<< Č < ć<<< Ć
& D < đ<<< Đ < dž<<< Dž<<< DŽ
& L < lj<<< Lj<<< LJ
& N < nj<<< Nj<<< NJ
& S < š<<< Š
& Z < ž<<< Ž
 DIFF: 0043  : 010D tailoring: C<č UCA: C<<č
 DIFF: 010C  : 0107 tailoring: Č<ć UCA: Č>ć
 DIFF: 0110  : 0064 017E tailoring: Đ<dž UCA: Đ>dž
 DIFF: 0053  : 0161 tailoring: S<š UCA: S<<š
 DIFF: 005A  : 017E tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale hu (Hungarian), LCID 000E
Rules:
& C < cs <<< cS <<< Cs <<< CS
& D < đ<<< Đ
& G < gy<<< gY<<< Gy<<< GY
& L < ly<<< lY<<< Ly<<< LY
& O < ö <<< Ö < ő <<< Ő
& S < sz <<< sZ <<< Sz <<< SZ
& U < ü <<< Ü < ű <<< Ű
& Z < zs <<< zS <<< Zs <<< ZS 
 DIFF: 004F  : 006F 0308 tailoring: O<ö UCA: O<<ö
 DIFF: 004F 0308  : 006F 030B tailoring: Ö<ő UCA: Ö<<ő
 DIFF: 0055  : 0075 0308 tailoring: U<ü UCA: U<<ü
 DIFF: 0055 0308  : 0075 030B tailoring: Ü<ű UCA: Ü<<ű
 
 
Testing locale is (Icelandic), LCID 000F
Rules:@
& A < á<<< Á
& D < ð<<< Ð
& E < é<<< É
& I < í<<< Í
& O < ó<<< Ó
& U < ú<<< Ú
& Y < ý<<< Ý
& Z < þ<<< Þ < æ<<< Æ< ö<<< Ö << ø<<<
 Ø
 DIFF: 0041  : 0061 0301 tailoring: A<á UCA: A<<á
 DIFF: 0045  : 0065 0301 tailoring: E<é UCA: E<<é
 DIFF: 0049  : 0069 0301 tailoring: I<í UCA: I<<í
 DIFF: 004F  : 006F 0301 tailoring: O<ó UCA: O<<ó
 DIFF: 0055  : 0075 0301 tailoring: U<ú UCA: U<<ú
 DIFF: 0059  : 0079 0301 tailoring: Y<ý UCA: Y<<ý
 DIFF: 00DE  : 00E6 tailoring: Þ<æ UCA: Þ>æ
 DIFF: 004F 0308  : 00F8 tailoring: Ö<<ø UCA: Ö<ø
 
 
Testing locale ja (Japanese), LCID 0011
Rules:[caseLevel on]
&アア<<< アー
&ァア<<< ァー
&イイ<<< イー
&ィイ<<< ィー
&ウウ<<< ウー
&ゥウ<<< ゥー
&エエ<<< エー
&ェエ<<< ェー
&オオ<<< オー
&ォオ<<< ォー
&カア<<< カー
&ヵア<<< ヵー
&キイ<<< キー
&クウ<<< クー
&ケエ<<< ケー
&ヶエ<<< ヶー
&コオ<<< コー
&サア<<< サー
&シイ<<< シー
&スウ<<< スー
&セエ<<< セー
&ソオ<<< ソー
&タア<<< ター
&チイ<<< チー
&ツウ<<< ツー
&ッウ<<< ッー
&テエ<<< テー
&トオ<<< トー
&ナア<<< ナー
&ニイ<<< ニー
&ヌウ<<< ヌー
&ネエ<<< ネー
&ノオ<<< ノー
&ハア<<< ハー
&ヒイ<<< ヒー
&フウ<<< フー
&ヘエ<<< ヘー
&ホオ<<< ホー
&マア<<< マー
&ミイ<<< ミー
&ムウ<<< ムー
&メエ<<< メー
&モオ<<< モー
&ヤア<<< ヤー
&ャア<<< ャー
&ユウ<<< ユー
&ュウ<<< ュー
&ヨオ<<< ヨー
&ョオ<<< ョー
&ラア<<< ラー
&リイ<<< リー
&ルウ<<< ルー
&レエ<<< レー
&ロオ<<< ロー
&ワア<<< ワー
&ヮア<<< ヮー
&ヰイ<<< ヰー
&ヱエ<<< ヱー
&ヲオ<<< ヲー
&ガア<<< ガー
&ギイ<<< ギー
&グウ<<< グー
&ゲエ<<< ゲー
&ゴオ<<< ゴー
&ザア<<< ザー
&ジイ<<< ジー
&ズウ<<< ズー
&ゼエ<<< ゼー
&ゾオ<<< ゾー
&ダア<<< ダー
&ヂイ<<< ヂー
&ヅウ<<< ヅー
&デエ<<< デー
&ドオ<<< ドー
&バア<<< バー
&ビイ<<< ビー
&ブウ<<< ブー
&ベエ<<< ベー
&ボオ<<< ボー
&ヴウ<<< ヴー
&ヸイ<<< ヸー
&ヹエ<<< ヹー
&ヺオ<<< ヺー
&パア<<< パー
&ピイ<<< ピー
&プウ<<< プー
&ペエ<<< ペー
&ポオ<<< ポー
Also tailors CJK range
 DIFF: 30A2 30A2  : 30A2 30FC tailoring: アア<<<アー UCA: アア>アー
 DIFF: 30A1 30A2  : 30A1 30FC tailoring: ァア<<<ァー UCA: ァア>ァー
 DIFF: 30A4 30A4  : 30A4 30FC tailoring: イイ<<<イー UCA: イイ>イー
 DIFF: 30A3 30A4  : 30A3 30FC tailoring: ィイ<<<ィー UCA: ィイ>ィー
 DIFF: 30A6 30A6  : 30A6 30FC tailoring: ウウ<<<ウー UCA: ウウ>ウー
 DIFF: 30A5 30A6  : 30A5 30FC tailoring: ゥウ<<<ゥー UCA: ゥウ>ゥー
 DIFF: 30A8 30A8  : 30A8 30FC tailoring: エエ<<<エー UCA: エエ>エー
 DIFF: 30A7 30A8  : 30A7 30FC tailoring: ェエ<<<ェー UCA: ェエ>ェー
 DIFF: 30AA 30AA  : 30AA 30FC tailoring: オオ<<<オー UCA: オオ>オー
 DIFF: 30A9 30AA  : 30A9 30FC tailoring: ォオ<<<ォー UCA: ォオ>ォー
 DIFF: 30AB 30A2  : 30AB 30FC tailoring: カア<<<カー UCA: カア>カー
 DIFF: 30F5 30A2  : 30F5 30FC tailoring: ヵア<<<ヵー UCA: ヵア>ヵー
 DIFF: 30AD 30A4  : 30AD 30FC tailoring: キイ<<<キー UCA: キイ>キー
 DIFF: 30AF 30A6  : 30AF 30FC tailoring: クウ<<<クー UCA: クウ>クー
 DIFF: 30B1 30A8  : 30B1 30FC tailoring: ケエ<<<ケー UCA: ケエ>ケー
 DIFF: 30F6 30A8  : 30F6 30FC tailoring: ヶエ<<<ヶー UCA: ヶエ>ヶー
 DIFF: 30B3 30AA  : 30B3 30FC tailoring: コオ<<<コー UCA: コオ>コー
 DIFF: 30B5 30A2  : 30B5 30FC tailoring: サア<<<サー UCA: サア>サー
 DIFF: 30B7 30A4  : 30B7 30FC tailoring: シイ<<<シー UCA: シイ>シー
 DIFF: 30B9 30A6  : 30B9 30FC tailoring: スウ<<<スー UCA: スウ>スー
 DIFF: 30BB 30A8  : 30BB 30FC tailoring: セエ<<<セー UCA: セエ>セー
 DIFF: 30BD 30AA  : 30BD 30FC tailoring: ソオ<<<ソー UCA: ソオ>ソー
 DIFF: 30BF 30A2  : 30BF 30FC tailoring: タア<<<ター UCA: タア>ター
 DIFF: 30C1 30A4  : 30C1 30FC tailoring: チイ<<<チー UCA: チイ>チー
 DIFF: 30C4 30A6  : 30C4 30FC tailoring: ツウ<<<ツー UCA: ツウ>ツー
 DIFF: 30C3 30A6  : 30C3 30FC tailoring: ッウ<<<ッー UCA: ッウ>ッー
 DIFF: 30C6 30A8  : 30C6 30FC tailoring: テエ<<<テー UCA: テエ>テー
 DIFF: 30C8 30AA  : 30C8 30FC tailoring: トオ<<<トー UCA: トオ>トー
 DIFF: 30CA 30A2  : 30CA 30FC tailoring: ナア<<<ナー UCA: ナア>ナー
 DIFF: 30CB 30A4  : 30CB 30FC tailoring: ニイ<<<ニー UCA: ニイ>ニー
 DIFF: 30CC 30A6  : 30CC 30FC tailoring: ヌウ<<<ヌー UCA: ヌウ>ヌー
 DIFF: 30CD 30A8  : 30CD 30FC tailoring: ネエ<<<ネー UCA: ネエ>ネー
 DIFF: 30CE 30AA  : 30CE 30FC tailoring: ノオ<<<ノー UCA: ノオ>ノー
 DIFF: 30CF 30A2  : 30CF 30FC tailoring: ハア<<<ハー UCA: ハア>ハー
 DIFF: 30D2 30A4  : 30D2 30FC tailoring: ヒイ<<<ヒー UCA: ヒイ>ヒー
 DIFF: 30D5 30A6  : 30D5 30FC tailoring: フウ<<<フー UCA: フウ>フー
 DIFF: 30D8 30A8  : 30D8 30FC tailoring: ヘエ<<<ヘー UCA: ヘエ>ヘー
 DIFF: 30DB 30AA  : 30DB 30FC tailoring: ホオ<<<ホー UCA: ホオ>ホー
 DIFF: 30DE 30A2  : 30DE 30FC tailoring: マア<<<マー UCA: マア>マー
 DIFF: 30DF 30A4  : 30DF 30FC tailoring: ミイ<<<ミー UCA: ミイ>ミー
 DIFF: 30E0 30A6  : 30E0 30FC tailoring: ムウ<<<ムー UCA: ムウ>ムー
 DIFF: 30E1 30A8  : 30E1 30FC tailoring: メエ<<<メー UCA: メエ>メー
 DIFF: 30E2 30AA  : 30E2 30FC tailoring: モオ<<<モー UCA: モオ>モー
 DIFF: 30E4 30A2  : 30E4 30FC tailoring: ヤア<<<ヤー UCA: ヤア>ヤー
 DIFF: 30E3 30A2  : 30E3 30FC tailoring: ャア<<<ャー UCA: ャア>ャー
 DIFF: 30E6 30A6  : 30E6 30FC tailoring: ユウ<<<ユー UCA: ユウ>ユー
 DIFF: 30E5 30A6  : 30E5 30FC tailoring: ュウ<<<ュー UCA: ュウ>ュー
 DIFF: 30E8 30AA  : 30E8 30FC tailoring: ヨオ<<<ヨー UCA: ヨオ>ヨー
 DIFF: 30E7 30AA  : 30E7 30FC tailoring: ョオ<<<ョー UCA: ョオ>ョー
 DIFF: 30E9 30A2  : 30E9 30FC tailoring: ラア<<<ラー UCA: ラア>ラー
 DIFF: 30EA 30A4  : 30EA 30FC tailoring: リイ<<<リー UCA: リイ>リー
 DIFF: 30EB 30A6  : 30EB 30FC tailoring: ルウ<<<ルー UCA: ルウ>ルー
 DIFF: 30EC 30A8  : 30EC 30FC tailoring: レエ<<<レー UCA: レエ>レー
 DIFF: 30ED 30AA  : 30ED 30FC tailoring: ロオ<<<ロー UCA: ロオ>ロー
 DIFF: 30EF 30A2  : 30EF 30FC tailoring: ワア<<<ワー UCA: ワア>ワー
 DIFF: 30EE 30A2  : 30EE 30FC tailoring: ヮア<<<ヮー UCA: ヮア>ヮー
 DIFF: 30F0 30A4  : 30F0 30FC tailoring: ヰイ<<<ヰー UCA: ヰイ>ヰー
 DIFF: 30F1 30A8  : 30F1 30FC tailoring: ヱエ<<<ヱー UCA: ヱエ>ヱー
 DIFF: 30F2 30AA  : 30F2 30FC tailoring: ヲオ<<<ヲー UCA: ヲオ>ヲー
 DIFF: 30AB 3099 30A2  : 30AB 3099 30FC tailoring: ガア<<<ガー UCA: ガア>ガー
 DIFF: 30AD 3099 30A4  : 30AD 3099 30FC tailoring: ギイ<<<ギー UCA: ギイ>ギー
 DIFF: 30AF 3099 30A6  : 30AF 3099 30FC tailoring: グウ<<<グー UCA: グウ>グー
 DIFF: 30B1 3099 30A8  : 30B1 3099 30FC tailoring: ゲエ<<<ゲー UCA: ゲエ>ゲー
 DIFF: 30B3 3099 30AA  : 30B3 3099 30FC tailoring: ゴオ<<<ゴー UCA: ゴオ>ゴー
 DIFF: 30B5 3099 30A2  : 30B5 3099 30FC tailoring: ザア<<<ザー UCA: ザア>ザー
 DIFF: 30B7 3099 30A4  : 30B7 3099 30FC tailoring: ジイ<<<ジー UCA: ジイ>ジー
 DIFF: 30B9 3099 30A6  : 30B9 3099 30FC tailoring: ズウ<<<ズー UCA: ズウ>ズー
 DIFF: 30BB 3099 30A8  : 30BB 3099 30FC tailoring: ゼエ<<<ゼー UCA: ゼエ>ゼー
 DIFF: 30BD 3099 30AA  : 30BD 3099 30FC tailoring: ゾオ<<<ゾー UCA: ゾオ>ゾー
 DIFF: 30BF 3099 30A2  : 30BF 3099 30FC tailoring: ダア<<<ダー UCA: ダア>ダー
 DIFF: 30C1 3099 30A4  : 30C1 3099 30FC tailoring: ヂイ<<<ヂー UCA: ヂイ>ヂー
 DIFF: 30C4 3099 30A6  : 30C4 3099 30FC tailoring: ヅウ<<<ヅー UCA: ヅウ>ヅー
 DIFF: 30C6 3099 30A8  : 30C6 3099 30FC tailoring: デエ<<<デー UCA: デエ>デー
 DIFF: 30C8 3099 30AA  : 30C8 3099 30FC tailoring: ドオ<<<ドー UCA: ドオ>ドー
 DIFF: 30CF 3099 30A2  : 30CF 3099 30FC tailoring: バア<<<バー UCA: バア>バー
 DIFF: 30D2 3099 30A4  : 30D2 3099 30FC tailoring: ビイ<<<ビー UCA: ビイ>ビー
 DIFF: 30D5 3099 30A6  : 30D5 3099 30FC tailoring: ブウ<<<ブー UCA: ブウ>ブー
 DIFF: 30D8 3099 30A8  : 30D8 3099 30FC tailoring: ベエ<<<ベー UCA: ベエ>ベー
 DIFF: 30DB 3099 30AA  : 30DB 3099 30FC tailoring: ボオ<<<ボー UCA: ボオ>ボー
 DIFF: 30A6 3099 30A6  : 30A6 3099 30FC tailoring: ヴウ<<<ヴー UCA: ヴウ>ヴー
 DIFF: 30F0 3099 30A4  : 30F0 3099 30FC tailoring: ヸイ<<<ヸー UCA: ヸイ>ヸー
 DIFF: 30F1 3099 30A8  : 30F1 3099 30FC tailoring: ヹエ<<<ヹー UCA: ヹエ>ヹー
 DIFF: 30F2 3099 30AA  : 30F2 3099 30FC tailoring: ヺオ<<<ヺー UCA: ヺオ>ヺー
 DIFF: 30CF 309A 30A2  : 30CF 309A 30FC tailoring: パア<<<パー UCA: パア>パー
 DIFF: 30D2 309A 30A4  : 30D2 309A 30FC tailoring: ピイ<<<ピー UCA: ピイ>ピー
 DIFF: 30D5 309A 30A6  : 30D5 309A 30FC tailoring: プウ<<<プー UCA: プウ>プー
 DIFF: 30D8 309A 30A8  : 30D8 309A 30FC tailoring: ペエ<<<ペー UCA: ペエ>ペー
 DIFF: 30DB 309A 30AA  : 30DB 309A 30FC tailoring: ポオ<<<ポー UCA: ポオ>ポー
 
 
Testing locale ko (Korean), LCID 0012
Tailors CJK range
 
Testing locale lt (Lithuanian), LCID 0027
Rules:[backwards 2]
& C < č <<< Č
& I << y = ı <<< Y = İ
& S < š <<< Š
& X < ý<<< Ý < ŷ <<< Ŷ < ÿ<<< Ÿ
& Z < ž <<< Ž 
 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č
 DIFF: 0049  : 0079 tailoring: I<<y UCA: I<y
 DIFF: 0079  : 0131 tailoring: y==ı UCA: y>ı
 DIFF: 0131  : 0059 tailoring: ı<<<Y UCA: ı<Y
 DIFF: 0059  : 0130 tailoring: Y==İ UCA: Y>İ
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 0059 0301  : 0079 0302 tailoring: Ý<ŷ UCA: Ý<<ŷ
 DIFF: 0059 0302  : 0079 0308 tailoring: Ŷ<ÿ UCA: Ŷ<<ÿ
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale lv (Latvian (Lettish)), LCID 0026
Rules:[casefirst upper][backwards 2]
&C < č <<< Č
& G < ģ <<< Ģ
& I < y<<< Y
& K < ķ <<< Ķ
& L < ļ <<< Ļ
& N < ņ <<< Ņ
& S < š <<< Š
& Z < ž <<< Ž 
 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č
 DIFF: 0047  : 0067 0327 tailoring: G<ģ UCA: G<<ģ
 DIFF: 004B  : 006B 0327 tailoring: K<ķ UCA: K<<ķ
 DIFF: 004C  : 006C 0327 tailoring: L<ļ UCA: L<<ļ
 DIFF: 004E  : 006E 0327 tailoring: N<ņ UCA: N<<ņ
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale mr (Marathi), LCID 004E
Rules:[normalization on]
 No immediate difference with UCA!
 
Testing locale mt (Maltese), LCID 003A
Rules:
& B < ċ <<< Ċ    < c<<<C
& F < ġ<<< Ġ     < g<<<G    < għ <<< gĦ <<< Għ
 <<< GĦ
& H < ħ  <<< Ħ
& I < ie<<< iE<<< Ie<<< IE  
& Y < ż<<< Ż    < z<<<Z
 DIFF: 0043 0307  : 0063 tailoring: Ċ<c UCA: Ċ>c
 DIFF: 0047 0307  : 0067 tailoring: Ġ<g UCA: Ġ>g
 DIFF: 005A 0307  : 007A tailoring: Ż<z UCA: Ż>z
 
 
Testing locale nb (Norwegian Bokmål), LCID 0014
Rules:
& Z < æ<<< Æ  < ä<<< Ä< ø<<< Ø < ö<<<
 Ö< ő<<< Ő < å<<< Å<<< aa <<< aA <<< Aa <<<
 AA 
& V<<< w<<< W 
 DIFF: 005A  : 00E6 tailoring: Z<æ UCA: Z>æ
 DIFF: 00C6  : 0061 0308 tailoring: Æ<ä UCA: Æ>ä
 DIFF: 00D8  : 006F 0308 tailoring: Ø<ö UCA: Ø>ö
 DIFF: 004F 0308  : 006F 030B tailoring: Ö<ő UCA: Ö<<ő
 DIFF: 004F 030B  : 0061 030A tailoring: Ő<å UCA: Ő>å
 DIFF: 0041 030A  : 0061 0061 tailoring: Å<<<aa UCA: Å<aa
 DIFF: 0056  : 0077 tailoring: V<<<w UCA: V<w
 
 
Testing locale nn (Norwegian Nynorsk), LCID 0014
Rules:
& Z < æ<<< Æ  < ä<<< Ä< ø<<< Ø < ö<<<
 Ö< ő<<< Ő < å<<< Å<<< aa <<< aA <<< Aa <<<
 AA 
& V<<< w<<< W 
 DIFF: 005A  : 00E6 tailoring: Z<æ UCA: Z>æ
 DIFF: 00C6  : 0061 0308 tailoring: Æ<ä UCA: Æ>ä
 DIFF: 00D8  : 006F 0308 tailoring: Ø<ö UCA: Ø>ö
 DIFF: 004F 0308  : 006F 030B tailoring: Ö<ő UCA: Ö<<ő
 DIFF: 004F 030B  : 0061 030A tailoring: Ő<å UCA: Ő>å
 DIFF: 0041 030A  : 0061 0061 tailoring: Å<<<aa UCA: Å<aa
 DIFF: 0056  : 0077 tailoring: V<<<w UCA: V<w
 
 
Testing locale no (Norwegian), LCID 0014
Rules:
& Z < æ<<< Æ  < ä<<< Ä< ø<<< Ø < ö<<<
 Ö< ő<<< Ő < å<<< Å<<< aa <<< aA <<< Aa <<<
 AA 
& V<<< w<<< W 
 DIFF: 005A  : 00E6 tailoring: Z<æ UCA: Z>æ
 DIFF: 00C6  : 0061 0308 tailoring: Æ<ä UCA: Æ>ä
 DIFF: 00D8  : 006F 0308 tailoring: Ø<ö UCA: Ø>ö
 DIFF: 004F 0308  : 006F 030B tailoring: Ö<ő UCA: Ö<<ő
 DIFF: 004F 030B  : 0061 030A tailoring: Ő<å UCA: Ő>å
 DIFF: 0041 030A  : 0061 0061 tailoring: Å<<<aa UCA: Å<aa
 DIFF: 0056  : 0077 tailoring: V<<<w UCA: V<w
 
 
Testing locale pl (Polish), LCID 0015
Rules:
& A < ą <<< Ą
& C < ć <<< Ć
& D < đ<<< Đ
& E < ę <<< Ę
& L < ł <<< Ł
& N < ń <<< Ń
& O < ó <<< Ó
& S < ś <<< Ś
& Z < ź <<< Ź < ż <<< Ż 
 DIFF: 0041  : 0061 0328 tailoring: A<ą UCA: A<<ą
 DIFF: 0043  : 0063 0301 tailoring: C<ć UCA: C<<ć
 DIFF: 0045  : 0065 0328 tailoring: E<ę UCA: E<<ę
 DIFF: 004E  : 006E 0301 tailoring: N<ń UCA: N<<ń
 DIFF: 004F  : 006F 0301 tailoring: O<ó UCA: O<<ó
 DIFF: 0053  : 0073 0301 tailoring: S<ś UCA: S<<ś
 DIFF: 005A  : 007A 0301 tailoring: Z<ź UCA: Z<<ź
 DIFF: 005A 0301  : 007A 0307 tailoring: Ź<ż UCA: Ź<<ż
 
 
Testing locale ro (Romanian), LCID 0018
Rules:
& A < ă <<< Ă
& D < đ<<< Đ
& I < î <<< Î
& S < ş <<< Ş
& Þ < ţ <<< Ţ
& Z < ż <<< Ż 
 DIFF: 0041  : 0061 0306 tailoring: A<ă UCA: A<<ă
 DIFF: 0049  : 0069 0302 tailoring: I<î UCA: I<<î
 DIFF: 0053  : 0073 0327 tailoring: S<ş UCA: S<<ş
 DIFF: 00DE  : 0074 0327 tailoring: Þ<ţ UCA: Þ>ţ
 DIFF: 005A  : 007A 0307 tailoring: Z<ż UCA: Z<<ż
 
 
Testing locale ru (Russian), LCID 0019
Rules:
&Е < ё<<< Ё
 DIFF: 0415  : 0451 tailoring: Е<ё UCA: Е<<ё
 
 
Testing locale sh (Serbo-Croatian), LCID 001A
Rules:
& C < č<<< Č < ć<<< Ć
& D < đ<<< Đ < dž<<< Dž<<< DŽ
& L < lj<<< Lj<<< LJ
& N < nj<<< Nj<<< NJ
& S < š<<< Š
& Z < ž<<< Ž
 DIFF: 0043  : 010D tailoring: C<č UCA: C<<č
 DIFF: 010C  : 0107 tailoring: Č<ć UCA: Č>ć
 DIFF: 0110  : 0064 017E tailoring: Đ<dž UCA: Đ>dž
 DIFF: 0053  : 0161 tailoring: S<š UCA: S<<š
 DIFF: 005A  : 017E tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale sk (Slovak), LCID 001B
Rules:
& A < ä <<< Ä
& C < č <<< Č
& D < đ<<< Đ
& H < ch <<< cH <<< Ch <<< CH
& L < ł <<< Ł
& O < ô <<< Ô
& R < ř <<< Ř
& S < š <<< Š
& Z < ž <<< Ž < ż <<< Ż 
 DIFF: 0041  : 0061 0308 tailoring: A<ä UCA: A<<ä
 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č
 DIFF: 0048  : 0063 0068 tailoring: H<ch UCA: H>ch
 DIFF: 004F  : 006F 0302 tailoring: O<ô UCA: O<<ô
 DIFF: 0052  : 0072 030C tailoring: R<ř UCA: R<<ř
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 DIFF: 005A 030C  : 007A 0307 tailoring: Ž<ż UCA: Ž<<ż
 
 
Testing locale sl (Slovenian), LCID 0024
Rules:
& C < č <<< Č
& S < š <<< Š
& Z < ž <<< Ž
 DIFF: 0043  : 0063 030C tailoring: C<č UCA: C<<č
 DIFF: 0053  : 0073 030C tailoring: S<š UCA: S<<š
 DIFF: 005A  : 007A 030C tailoring: Z<ž UCA: Z<<ž
 
 
Testing locale sq (Albanian), LCID 001C
Rules:@
 No immediate difference with UCA!
 
Testing locale sv (Swedish), LCID 001D
Rules:
& Z < æ <<< Æ < å <<< Å <<< aa <<< aA <<< Aa <<< AA
< ä <<< Ä < ö <<< Ö << ű <<< Ű < ő
 <<< Ő << ø <<< Ø
& V << w <<< W
& Y<<< ü <<< Ü
 DIFF: 005A  : 00E6 tailoring: Z<æ UCA: Z>æ
 DIFF: 00C6  : 0061 030A tailoring: Æ<å UCA: Æ>å
 DIFF: 0041 030A  : 0061 0061 tailoring: Å<<<aa UCA: Å<aa
 DIFF: 0041 0041  : 0061 0308 tailoring: AA<ä UCA: AA>ä
 DIFF: 004F 0308  : 0075 030B tailoring: Ö<<ű UCA: Ö<ű
 DIFF: 0055 030B  : 006F 030B tailoring: Ű<ő UCA: Ű>ő
 DIFF: 004F 030B  : 00F8 tailoring: Ő<<ø UCA: Ő<ø
 DIFF: 0056  : 0077 tailoring: V<<w UCA: V<w
 DIFF: 0059  : 0075 0308 tailoring: Y<<<ü UCA: Y>ü
 
 
Testing locale th (Thai), LCID 001E
Rules:[normalization on]
& Z < ก < ข < ฃ < ค < ฅ < ฆ < ง < จ
 < ฉ < ช < ซ < ฌ < ญ < ฎ < ฏ < ฐ
< ฑ < ฒ < ณ < ด < ต < ถ < ท < ธ <
 น < บ < ป < ผ < ฝ < พ < ฟ < ภ <
ม < ย < ร < ฤ < ฤๅ < ล < ฦ < ฦ
ๅ < ว < ศ < ษ < ส < ห < ฬ < อ < ฮ
 < ะ < ั < า < ำ < ิ < ี < ึ < ื
< ุ < ู < เ < แ < โ < ใ < ไ < ๐ <
 ๑ < ๒ < ๓ < ๔ < ๕ < ๖ < ๗ < ๘ <
๙ < ํ
&'}'< ฯ < ๆ < ๏ < ๚ < ๛ < ฿ < ๎ < ๅ
& ́ << ็ << ่ << ้ << ๊ << ๋ << ์
&  = ฺ = '.' 
 DIFF: 0E44  : 0E50 tailoring: ไ<๐ UCA: ไ>๐
 DIFF: 0E2F  : 0E46 tailoring: ฯ<ๆ UCA: ฯ>ๆ
 DIFF: 0E46  : 0E4F tailoring: ๆ<๏ UCA: ๆ>๏
 DIFF: 0E4F  : 0E5A tailoring: ๏<๚ UCA: ๏>๚
 DIFF: 0E3F  : 0E4E tailoring: ฿<๎ UCA: ฿>๎
 DIFF: 0E4B  : 0E4C tailoring: ๋<<์ UCA: ๋<์
 DIFF: 0001  : 0E3A tailoring: ==ฺ UCA: <ฺ
 DIFF: 0E3A  : 002E tailoring: ฺ==. UCA: ฺ>.
 
 
Testing locale tr (Turkish), LCID 001F
Rules:
& A < ä <<< Ä
& C < ç <<< Ç
& G < ğ <<< Ğ
& H < ı <<< I <<< i <<< İ < IJ <<< ij
& O < ö <<< Ö
& S < ş <<< Ş
& U < ü <<< Ü 
 DIFF: 0041  : 0061 0308 tailoring: A<ä UCA: A<<ä
 DIFF: 0043  : 0063 0327 tailoring: C<ç UCA: C<<ç
 DIFF: 0047  : 0067 0306 tailoring: G<ğ UCA: G<<ğ
 DIFF: 0131  : 0049 tailoring: ı<<<I UCA: ı>I
 DIFF: 0049  : 0069 tailoring: I<<<i UCA: I>i
 DIFF: 0069  : 0130 tailoring: i<<<İ UCA: i<<İ
 DIFF: 0132  : 0133 tailoring: IJ<<<ij UCA: IJ>ij
 DIFF: 004F  : 006F 0308 tailoring: O<ö UCA: O<<ö
 DIFF: 0053  : 0073 0327 tailoring: S<ş UCA: S<<ş
 DIFF: 0055  : 0075 0308 tailoring: U<ü UCA: U<<ü
 
 
Testing locale uk (Ukrainian), LCID 0022
Rules:
&Г < ґ <<< Ґ
 DIFF: 0413  : 0491 tailoring: Г<ґ UCA: Г<<ґ
 
 
Testing locale vi (Vietnamese), LCID 002A
Rules:[normalization on]
&̀<<̉<<̃<<́<<̣<<̆<<̂<<̛
&D<đ<<<Đ
 DIFF: 0309  : 0303 tailoring: ̉<<̃ UCA: ̉>̃
 DIFF: 0303  : 0301 tailoring: ̃<<́ UCA: ̃>́
 DIFF: 0323  : 0306 tailoring: ̣<<̆ UCA: ̣>̆