Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 18:58   #1
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию MultiByteToUTF convert и обратно

не подскажите как конвертировать MultiByte в UTF и обратно?
mrCloud вне форума Ответить с цитированием
Старый 29.05.2011, 19:01   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все семейство UTF кодировок итак считается мультибайтовой.
да и UTF который?

так что сформируйте сначало нормально вопрос.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 29.05.2011 в 19:08.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2011, 19:07   #3
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

в UTF8 просто есть файл там строки идут в этой кодировке пример
Код:
43 6F 6E 74 72 6F 6C 6C 65 72 31
mrCloud вне форума Ответить с цитированием
Старый 29.05.2011, 19:10   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

и вы не знаете их кодировки и хотите при этом чтото получить?
а может они шифрованные?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2011, 19:12   #5
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

Кодировка 936, извините что сразу не указал , она точно не шифрована
mrCloud вне форума Ответить с цитированием
Старый 29.05.2011, 19:24   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

примерно так:

Код:
function C936toWideChar(b:array of byte):WideString;
begin
 SetLength(Result,Length(b));
 SetLength(Result,MultiByteToWideChar(936,0,@b[Low(b)],Length(b),@Result[1],Length(Result)));
end;
компилируется, но проверить не на чем.
с полученным WideString можете сделать уже что угодно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2011, 19:37   #7
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

а обратно ?
mrCloud вне форума Ответить с цитированием
Старый 29.05.2011, 19:54   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
type
 TDinByteArray=array of Byte;

function WideChartoC936(str:WideString):TDinByteArray;
begin
 SetLength(Result,Length(str));
 SetLength(Result,WideCharToMultiByte(936,0,@str[1],Length(str),@Result[0],Length(Result),nil,nil));
end;
примерно так.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2011, 21:14   #9
mrCloud
Пользователь
 
Аватар для mrCloud
 
Регистрация: 13.05.2011
Сообщений: 42
По умолчанию

а можно как нибудь переделать чтобы был не динамический массив а в 128 байт?
mrCloud вне форума Ответить с цитированием
Старый 30.05.2011, 22:01   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
type
 T128ByteArray=array[0..127] of Byte;

function WideChartoC936(str:WideString):T128ByteArray;
begin
 ,WideCharToMultiByte(936,0,@str[1],Length(str),@Result[0],Length(Result),nil,nil);
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QT convert txt to PDF cppta Qt и кроссплатформенное программирование С/С++ 3 09.03.2010 15:22
функции convert, datediff Veroonya БД в Delphi 8 09.02.2009 11:13
*.prn convert > ??? CHer0BuK Помощь студентам 2 19.05.2008 12:14
Convert Voucik Общие вопросы .NET 2 14.04.2008 14:16
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13