Текущий архив: 2008.02.10;
Скачать: CL | DM;
Вниз
Unicode Найти похожие ветки
← →
Res (2008-01-17 00:01) [0]Здравствуйте! Подскажите как работать с Unicode в delphi. Какие компаненты использовать, функция кодирования из ansi в unicode и обратно.
Заранее благодарю.
← →
iiymaxep (2008-01-17 00:36) [1]Классика
function ConvertAnsiToOem(const S: string): string;
{$IFNDEF WIN32}
var
Source, Dest : array[0..255] of Char;
{$ENDIF}
begin
{$IFDEF WIN32}
SetLength(Result, Length(S));
if Length(Result) > 0 then
AnsiToOem(PChar(S), PChar(Result));
{$ELSE}
if Length(Result) > 0 then
begin
AnsiToOem(StrPCopy(Source, S), Dest);
Result := StrPas(Dest);
end;
{$ENDIF}
end; { ConvertAnsiToOem }
function ConvertOemToAnsi(const S: string): string;
{$IFNDEF WIN32}
var
Source, Dest : array[0..255] of Char;
{$ENDIF}
begin
{$IFDEF WIN32}
SetLength(Result, Length(S));
if Length(Result) > 0 then
OemToAnsi(PChar(S), PChar(Result));
{$ELSE}
if Length(Result) > 0 then
begin
OemToAnsi(StrPCopy(Source, S), Dest);
Result := StrPas(Dest);
end;
{$ENDIF}
end; { ConvertOemToAnsi }
← →
iiymaxep (2008-01-17 00:40) [2]Ах, сорри.... В уникод... Сча)
← →
korneley © (2008-01-17 00:44) [3]
> iiymaxep (17.01.08 00:36) [1]
А это разве не 866 <-> 1251 телодвижения? Однобайтные.
← →
iiymaxep (2008-01-17 00:46) [4]Вот такой примерчик есть
{
Converts Unicode string to Ansi string using specified code page.
@param ws Unicode string.
@param codePage Code page to be used in conversion.
@returns Converted ansi string.
}
function WideStringToString(const ws: WideString; codePage: Word): AnsiString;
var
l: integer;
begin
if ws = "" then
Result := ""
else
begin
l := WideCharToMultiByte(codePage,
WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
@ws[1], -1, nil, 0, nil, nil);
SetLength(Result, l - 1);
if l > 1 then
WideCharToMultiByte(codePage,
WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
@ws[1], -1, @Result[1], l - 1, nil, nil);
end;
end; { WideStringToString }
{:Converts Ansi string to Unicode string using specified code page.
@param s Ansi string.
@param codePage Code page to be used in conversion.
@returns Converted wide string.
}
function StringToWideString(const s: AnsiString; codePage: Word): WideString;
var
l: integer;
begin
if s = "" then
Result := ""
else
begin
l := MultiByteToWideChar(codePage, MB_PRECOMPOSED, PChar(@s[1]), -1, nil,
0);
SetLength(Result, l - 1);
if l > 1 then
MultiByteToWideChar(CodePage, MB_PRECOMPOSED, PChar(@s[1]),
-1, PWideChar(@Result[1]), l - 1);
end;
end; { StringToWideString }
← →
Плохиш © (2008-01-17 10:49) [5]
> Подскажите как работать с Unicode в delphi. Какие компаненты
> использовать
tnt
← →
Res (2008-01-17 13:04) [6]function WideStringToString(const ws: WideString; codePage: Word): AnsiString;
непонятно, что за CodePage?
← →
DVM © (2008-01-17 13:08) [7]
> Какие компаненты использовать, функция кодирования из ansi
> в unicode и обратно.
Считай, что уже никаких. Были TNT Unicode Controls бесплатные, теперь они платные. В будущих версиях Delphi может добавят все таки.
← →
iiiymaxep © (2008-01-19 00:53) [8]{ Code Page Default Values. }
CP_ACP = 0; { default to ANSI code page }
CP_OEMCP = 1; { default to OEM code page }
CP_MACCP = 2; { default to MAC code page }
CP_THREAD_ACP = 3; { current thread"s ANSI code page }
CP_SYMBOL = 42; { SYMBOL translations }
CP_UTF7 = 65000; { UTF-7 translation }
CP_UTF8 = 65001; { UTF-8 translation }
Страницы: 1 вся ветка
Текущий архив: 2008.02.10;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.067 c