Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перекодирование из Unicode в ANSI, в c# 
:(
    Опции темы
chaklun
Дата 21.5.2004, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.5.2004

Репутация: нет
Всего: нет



Encoding.Default.GetBytes(mystring.ToCharArray()); возвращает кучку карлючек, как получить корректную сточку в формате ANSI?
PM MAIL   Вверх
Kurt
Дата 22.5.2004, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 20
Всего: 36



Для смены кодировки текста используют пространство имен System.Text.
Там есть такие классы как ASCIIEncoding, UnicodeEncoding etc.
Вот пример, к-й перекодирует строку из UNICODE в ASCII (обрати внимание на потерю некоторых символов при перекодировке..):

C#
Код
using System;
using System.Text;

class ASCIIEncodingExample {
   public static void Main() {
       // The encoding.
       ASCIIEncoding ascii = new ASCIIEncoding();
       
       // A Unicode string with two characters outside the ASCII code range.
       String unicodeString =
           "This Unicode string contains two characters " +
           "with codes outside the ASCII code range, " +
           "Pi (\u03a0) and Sigma (\u03a3).";
       Console.WriteLine("Original string:");
       Console.WriteLine(unicodeString);

       // Save positions of the special characters for later reference.
       int indexOfPi = unicodeString.IndexOf('\u03a0');
       int indexOfSigma = unicodeString.IndexOf('\u03a3');

       // Encode string.
       Byte[] encodedBytes = ascii.GetBytes(unicodeString);
       Console.WriteLine();
       Console.WriteLine("Encoded bytes:");
       foreach (Byte b in encodedBytes) {
           Console.Write("[{0}]", b);
       }
       Console.WriteLine();
       
       // Notice that the special characters have been replaced with
       // the value 63, which is the ASCII character code for '?'.
       Console.WriteLine();
       Console.WriteLine(
           "Value at position of Pi character: {0}",
           encodedBytes[indexOfPi]
       );
       Console.WriteLine(
           "Value at position of Sigma character: {0}",
           encodedBytes[indexOfSigma]
       );

       // Decode bytes back to string.
       // Notice missing Pi and Sigma characters.
       String decodedString = ascii.GetString(encodedBytes);
       Console.WriteLine();
       Console.WriteLine("Decoded bytes:");
       Console.WriteLine(decodedString);
   }
}




--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Гость_Сергей
Дата 8.7.2004, 17:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите пожалуйста, что делать, если нужно на C# строку Unicode содержащую русские буквы перевести в однобайтовую строку в кодировке win1251?



Сергей

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.