Вопрос про Unicode
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Вопрос про Unicode Expand / Collapse
Автор
Сообщение
20.05.2006 18:16
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 28.09.2007 12:58
Сообщ.: 25, Visits: 179
Есть строчка "\"\\u0230\"", надо из нее сделать строчку "\u0230", которая соответствует какойто букве в Unicode.
Сообщ. #897197
04.07.2006 0:55
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 04.07.2006 1:28
Сообщ.: 2, Visits: 4
вот Тебе общий рецепт, атам  -Шеф-Повор!Удачи..

using System;
using System.Text;

public class SamplesEncoding  {

   public static void Main()  {

      // Кодировки

      //    Latin Small Letter Z (U+007A)
      //    Latin Small Letter A (U+0061)
      //    Combining Breve (U+0306)
      //    Latin Small Letter AE With Acute (U+01FD)
      //    Greek Small Letter Beta (U+03B2)
      //    a high-surrogate value (U+D8FF)
      //    a low-surrogate value (U+DCFF)
      char[] myChars = new char[] { 'z', 'a', '\u0306', '\u01FD', '\u03B2', '\uD8FF', '\uDCFF' };

      // Различные кодировки

      Encoding  u7    = Encoding.UTF7;
      Encoding  u8    = Encoding.UTF8;
      Encoding  u16LE = Encoding.Unicode;
      Encoding  u16BE = Encoding.BigEndianUnicode;
      Encoding  u32   = Encoding.UTF32;

      // кодировка и вывод на печать результирующих байтов

      PrintCountsAndBytes( myChars, u7 );
      PrintCountsAndBytes( myChars, u8 );
      PrintCountsAndBytes( myChars, u16LE );
      PrintCountsAndBytes( myChars, u16BE );
      PrintCountsAndBytes( myChars, u32 );

   }


   public static void PrintCountsAndBytes( char[] chars, Encoding enc )  {

      // Вывод текущей кодировки

      Console.Write( "{0,-30} :", enc.ToString() );

      // 

      int iBC  = enc.GetByteCount( chars );
      Console.Write( " {0,-3}", iBC );

      // получить максимальный размер в байтах(!)
      int iMBC = enc.GetMaxByteCount( chars.Length );
      Console.Write( " {0,-3} :", iMBC );

      // Кодироание массива символов

      byte[] bytes = enc.GetBytes( chars );

      // печать закодированных байтов
      PrintHexBytes( bytes );

   }


   public static void PrintHexBytes( byte[] bytes )  {

      if (( bytes == null ) || ( bytes.Length == 0 ))
         Console.WriteLine( "<none>" );
      else  {
         for ( int i = 0; i < bytes.Length; i++ )
            Console.Write( "{0:X2} ", bytes[i] );
         Console.WriteLine();
      }

   }

}


simple coder

Сообщ. #900020
05.07.2006 18:47
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.07.2006 17:11
Сообщ.: 484, Visits: 5 211
>Есть строчка "\"\\u0230\"", надо из нее сделать строчку "\u0230", которая соответствует какойто букве в Unicode.

В данном случае для приведения одной строки к другой проще всего использовать String.Replace (ну или регекспы если что-то совсем сложное будет).

Сообщ. #900168
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 7:48