[Mono-dev] Unhandled Exception in Normalization.cs Combine()

Atsushi Eno atsushieno at veritas-vos-liberabit.com
Sun Jun 14 20:02:28 EDT 2009


I'll have a look. However since 4 years have passed since I wrote it,
I'll have to revisit the spec and will take not a little time.

Atsushi Eno

Tom Philpot wrote:
> The following program throws an UnhandledException when trying to 
> normalize a series of greek characters. I’ve tested this with Mono 2.4.7 
> and the latest code from SVN as of about 1 week ago.
> The same program works fine under Visual Studio.
> 
> I’m new to Unicode, but I thought I’d put this out there to see if 
> anyone had a quick fix.
> 
> using System;
> using System.Text;
> 
> namespace NormalizationTest
> {
>     class Program
>     {
>         static void Main(string[] args)
>         {
>             byte[] utf8Bytes = new byte[] {0xCE, 0xB1, 0xCC, 0x93, 0xCD, 
> 0x85};
>             string strToNormalize = 
> System.Text.Encoding.UTF8.GetString(utf8Bytes);
>             Console.WriteLine("Converted from Hex: {0}", strToNormalize);
>             
>             Console.WriteLine("Composed Normalized String: 
> IsNormalized(NormalizationForm.FormC)  = {0}", 
> strToNormalize.IsNormalized(NormalizationForm.FormC));
>             Console.WriteLine("{0}", 
> strToNormalize.Normalize(NormalizationForm.FormC));
>         }
>     }
> }
> 
> ---- Output ---
> WS1048:Debug tom.philpot$ /opt/mono/bin/gmcs NormTest.cs 
> /out:NormTest.exe && /opt/mono/bin/mono --debug NormTest.exe
> Converted from Hex: ᾀ
> Composed Normalized String: IsNormalized(NormalizationForm.FormC)  = False
> 
> Unhandled Exception: System.SystemException: Internal error: should not 
> happen.
>   at Mono.Globalization.Unicode.Normalization.Combine 
> (System.Text.StringBuilder sb, Int32 start, Int32 checkType) [0x00198] 
> in 
> /Users/tom.philpot/External/mono-project/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs:206 
> 
>   at Mono.Globalization.Unicode.Normalization.Combine (System.String 
> source, Int32 start, Int32 checkType) [0x0003c] in 
> /Users/tom.philpot/External/mono-project/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs:135 
> 
>   at Mono.Globalization.Unicode.Normalization.Compose (System.String 
> source, Int32 checkType) [0x00011] in 
> /Users/tom.philpot/External/mono-project/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs:121 
> 
>   at Mono.Globalization.Unicode.Normalization.Normalize (System.String 
> source, Int32 type) [0x00015] in 
> /Users/tom.philpot/External/mono-project/mcs/class/corlib/Mono.Globalization.Unicode/Normalization.cs:392 
> 
>   at System.String.Normalize (NormalizationForm normalizationForm) 
> [0x00023] in 
> /Users/tom.philpot/External/mono-project/mcs/class/corlib/System/String.cs:1442 
> 
>   at NormalizationTest.Program.Main (System.String[] args) [0x00000]
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Mono-devel-list mailing list