Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПомогите сконвертировать строку Найти похожие ветки
← →
noob_one © (2012-09-21 12:58) [0]Вот например есть строка "Администратор БД"
В кодировке win1251
Коды символов такие 192 228 236 232 237 232 241 242 240 224 242 238 240 32 193 196
А в нужной мне кодировке
208 144 208 180 208 188 208 184 208 189 208 184 209 129 209 130 209 128 208 176 209 130 208 190 209 128 32 208 145 208 148
Это какой-то юникод, но я не пойму какой :(
← →
Медвежонок Пятачок © (2012-09-21 13:09) [1]это утф-8
← →
Ega23 © (2012-09-21 15:16) [2]Определись, что тебе нужно: юникод или utf-8, это несколько разные вещи.
← →
noob_one © (2012-09-24 10:26) [3]Да, надо получить Utf8
← →
noob_one © (2012-09-24 10:32) [4]но функция AnsiToUtf8 возвращает мне строку иероглифов с обилием шапочек, галочек, тильд и апострофов.
← →
Anatoly Podgoretsky © (2012-09-24 11:22) [5]> noob_one (24.09.2012 10:32:04) [4]
В общем случае AnsiToUtf8 нельзя использовать
← →
DVM © (2012-09-24 11:38) [6]
> noob_one © (24.09.12 10:32) [4]
Сначала твою строку надо перегнать в Unicode, а уж потом делай с ней что хочешь, хошь в Utf-8 сохраняй, хошь еще как.
function AnsiStringToWideString(const Src: AnsiString; CodePage: Word = 0): WideString;
var
Len: Integer;
begin
if CodePage = 0 then
CodePage := GetACP;
if Src = "" then
Result := ""
else
begin
Len := MultiByteToWideChar(CodePage, 0, PAnsiChar(Src), Length(Src), nil, 0);
if Len = 0 then
RaiseLastOSError;
SetLength(Result, Len);
Len := MultiByteToWideChar(CodePage, 0, PAnsiChar(Src), Length(Src),
PWideChar(Result), Length(Result));
if Len = 0 then
RaiseLastOSError;
end;
end;
А потом можно UTF8Encode
← →
palva © (2012-09-24 12:03) [7]Если современная версия Delpi, то можно так:
uses
Character;
var
s: AnsiString;
utf: UTF8String;
i: Integer;
begin
s := "Администратор БД";
utf := s;
for i := 1 to Length(utf) do
Write (Ord(utf[i]):4);
WriteLn;
Используется текущая кодовая страница.
← →
noob_one © (2012-09-24 17:57) [8]Спасибо.
Проблема была решена другим образом - удалось изменить кодировку источника.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.217 c