string GetUnicodeSpecialMarks( Charset charset )
 {
     if ( charset.HasFlag ( Charset.UnicodeSpecialChars ) )
     {
         StringBuilder stringBuilder = new StringBuilder ();
         for ( int i = 0x2460; i <= 0x24FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x3000; i <= 0x303F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x3200; i <= 0x32FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x3300; i <= 0x33FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2580; i <= 0x259F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2500; i <= 0x257F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x25A0; i <= 0x25FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2600; i <= 0x26FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2190; i <= 0x21FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2200; i <= 0x22FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2300; i <= 0x23FF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x20A0; i <= 0x20CF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2100; i <= 0x214F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2150; i <= 0x218F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2000; i <= 0x206F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x2070; i <= 0x209F; i++ )
             stringBuilder.Append ( ( char ) i );
         return stringBuilder.ToString ();
     }
     else return "";
 }
 string GetLatinAlphabets( Charset charset )
 {
     if ( charset.HasFlag ( Charset.LatinAdditionalChars ) )
     {
         StringBuilder stringBuilder = new StringBuilder ();
         for ( int i = 0x0100; i <= 0x017F; i++ )
             stringBuilder.Append ( ( char ) i );
         return stringBuilder.ToString ();
     }
     else return "";
 }
 string GetNumbers( Charset charset )
 {
     if ( charset.HasFlag ( Charset.Numbers ) )
         return "0123456789";
     else return "";
 }
 string GetHirakanaKatakana( Charset charset )
 {
     if ( charset.HasFlag ( Charset.JapChars ) )
     {
         StringBuilder stringBuilder = new StringBuilder ();
         for ( int i = 0x3040; i <= 0x309F; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0x30A0; i <= 0x30FF; i++ )
             stringBuilder.Append ( ( char ) i );
         return stringBuilder.ToString ();
     }
     else return "";
 }
 string GetEnglishAlphabets( Charset charset )
 {
     if ( charset.HasFlag ( Charset.EnglishAlphabet ) )
         return "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
     else return "";
 }
 string GetCompletionHangulCharacters( Charset charset )
 {
     if ( charset.HasFlag ( Charset.Hangul ) )
     {
         StringBuilder stringBuilder = new StringBuilder ();
         for ( int i = 0xAC00; i <= 0xD7AF; i++ )
             stringBuilder.Append ( ( char ) i );
         return stringBuilder.ToString ();
     }
     else return "";
 }
 string GetAsianHanja( Charset charset )
 {
     if ( charset.HasFlag ( Charset.AsianHanja ) )
     {
         StringBuilder stringBuilder = new StringBuilder ();
         for ( int i = 0x4E00; i <= 0x9FBF; i++ )
             stringBuilder.Append ( ( char ) i );
         for ( int i = 0xF900; i <= 0xFAFF; i++ )
             stringBuilder.Append ( ( char ) i );
         return stringBuilder.ToString ();
     }
     else return "";
 }
 string GetAsciiSpecialCharacters( Charset charset )
 {
     if ( charset.HasFlag ( Charset.AsciiSpecialChars ) )
         return "`-=\\][;',./~!@#$%^&*()_+{}|:\"<>?";
     else return "";
 }