Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практическое руководство. Преобразование из устаревших кодировок в Юникод (Руководство по программированию в C#)




Обновлен: Июль 2008

В C# все строки в памяти кодируются как Юникод (UTF-16). При переносе данных из места хранения в объект string, данные автоматически преобразуются в UTF-16. Если данные содержат только ASCII-значения от 0 до 127, для преобразования не требуется никаких дополнительных действий. Но если исходный текст содержит дополнительные байтовые значения ASCII (от 128 до 255), дополнительные символы по умолчанию интерпретируются в соответствии с текущей кодовой страницей. Чтобы указать, что исходный текст нужно интерпретировать в соответствии с другой кодовой страницей, используйте класс System.Text..::.Encoding, как показано в следующем примере.

Пример

В следующем примере показано, как преобразовать текстовый файл, который был закодирован в 8-битном коде ASCII, интерпретируя исходный текст в соответствии с кодовой страницей Windows 737.

Язык C#

 

Копировать код

class ANSIToUnicode

{

static void Main()

{

   // Create a file that contains the Greek work ψυχή (psyche) when interpreted by using

   // code page 737 ((DOS) Greek). You can also create the file by using Character Map

   // to paste the characters into Microsoft Word and then "Save As" by using the DOS

   // (Greek) encoding. (Word will actually create a six-byte file by appending "\r\n" at the end.)

   System.IO.File.WriteAllBytes(@"greek.txt", new byte[] { 0xAF, 0xAC, 0xAE, 0x9E });

 

   // Specify the code page to correctly interpret byte values

   Encoding encoding = Encoding.GetEncoding(737); //(DOS) Greek code page

   byte[] codePageValues = System.IO.File.ReadAllBytes(@"greek.txt");

 

   // Same content is now encoded as UTF-16

   string unicodeValues = encoding.GetString(codePageValues);

 

   // Show that the text content is still intact in Unicode string

   // (Add a reference to System.Windows.Forms.dll)

   System.Windows.Forms.MessageBox.Show(unicodeValues);

 

   // Same content "ψυχή" is stored as UTF-8

   System.IO.File.WriteAllText(@"greek_unicode.txt", unicodeValues);

 

   // Conversion is complete. Show the bytes to prove the conversion.

   Console.WriteLine("8-bit encoding byte values:");

   foreach(byte b in codePageValues)

       Console.Write("{0:X}-", b);

 

  Console.WriteLine();

   Console.WriteLine("Unicode values:");

   string unicodeString = System.IO.File.ReadAllText("greek_unicode.txt");

   System.Globalization.TextElementEnumerator enumerator =

       System.Globalization.StringInfo.GetTextElementEnumerator(unicodeString);

   while(enumerator.MoveNext())

   {               

      string s = enumerator.GetTextElement();

      int i = Char.ConvertToUtf32(s, 0);               

      Console.Write("{0:X}-", i);         

   }               

   Console.WriteLine();

 

   // Keep the console window open in debug mode.

   Console.Write("Press any key to exit.");

   Console.ReadKey();

}

/*

* Output:

   8-bit encoding byte values:

   AF-AC-AE-9E

   Unicode values:

   3C8-3C5-3C7-3B7

*/

}

 

 

Практическое руководство. Преобразование формата RTF в обычный текст (Руководство по программированию в C#)

Обновлен: Июль 2008

Формат RTF является форматом документов, разработанный корпорацией Microsoft в конце 80-х годов для предоставления возможности использования одних и тех же документов в разных операционных системах. И Microsoft Word, и WordPad могут читать документы RTF и записывать в них. В платформе .NET Framework можно использовать элемент управления RichTextBox для создания текстового процессора, который поддерживает RTF и дает возможность пользователю применять форматирование текста в режиме WYSIWIG.

Можно также использовать элемент управления RichTextBox для удаления программным способом котов форматирования RTF из документа и преобразования его в обычный текст. Для выполнения этого вида операций нет необходимости внедрять элемент управления в форме Windows Forms.










Последнее изменение этой страницы: 2018-06-01; просмотров: 175.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...