Форум: "Прочее";
Текущий архив: 2014.09.14;
Скачать: [xml.tar.bz2];
ВнизРазбираемся в кодировках Найти похожие ветки
← →
DevilDevil © (2014-01-31 17:09) [120]Вот что получилось :)
(кому надо){$if Defined(FPC) or (CompilerVersion < 24)}
function AtomicCmpExchange(var Target: Pointer; NewValue: Pointer; Comparand: Pointer): Pointer;
{$if (not Defined(CPUX86)) and (not Defined(CPUX64))}
begin
{$if Defined(FPC) or Defined(MSWINDOWS)}
Result := InterlockedCompareExchange(Target, NewValue, Comparand);
{$else}
{$message warn "not thread safety"}
Result := Target;
if (Result = Comparand) then Target := NewValue;
{$ifend}
end;
{$ifend}
{$ifdef CPUX86}
asm
xchg eax, ecx
lock cmpxchg [ecx], edx
end;
{$endif}
{$ifdef CPUX64}
asm
mov rax, r8
lock cmpxchg [rcx], rdx
end;
{$endif}
{$ifend}
← →
DevilDevil © (2014-02-02 04:01) [121]Определён список кодировок, которые надо бы поддерживать
Надеюсь получится
В английском я не асс, поэтому если что - корректируйте. Но не увлекайтесьtype
// unicode mode
TUniConvUnicode = (// most used
ucuNone{SBCS/MBCS: AnsiChar, AnsiString},
ucuUCS2{WideChar, WideString, UnicodeString},
ucuUtf8{Utf8Char, Utf8String},
// another supported unicode
ucuUtf7,ucuUtf16,ucuUtf16be,ucuUtf32,ucuUtf32be,ucuUCS_2143,ucuUCS_3412);
{ ------------------- SUPPORTED NON-UNICODE ENCODINGS ---------------------- }
(*
ANSI Code Pages(may be returned by Windows.GetACP):
874 – Thai
1250 – Central and East European Latin
1251 – Cyrillic
1252 – West European Latin
1253 – Greek
1254 – Turkish
1255 – Hebrew
1256 – Arabic
1257 – Baltic
1258 – Vietnamese
Another (multy-byte) encodings, that may be specified as default in POSIX systems:
932 - Japanese (shift_jis)
936 - Simplified Chinese (gb2312)
949 - Korean (ks_c_5601-1987)
950 - Traditional Chinese (big5)
Single-byte encodings, that also can be defined as "encoding" in XML/HTML:
866 - Cyrillic (OEM)
28592 - Central European (iso-8859-2)
28593 - Latin 3 (iso-8859-3)
28594 - Baltic (iso-8859-4)
28595 - Cyrillic (iso-8859-5)
28596 - Arabic (iso-8859-6)
28597 - Greek (iso-8859-7)
28598 - Hebrew (iso-8859-8)
28599 - Turkish (iso-8859-9)
28600 - Nordic (iso-8859-10)
28603 - Estonian (iso-8859-13)
28604 - Celtic (iso-8859-14)
28605 - Latin-9 (iso-8859-15)
28606 - South-Eastern European (iso-8859-16)
20866 - Cyrillic (koi8-r)
21866 - Ukrainian (koi8-u)
10000 - Western European (Mac)
10007 - Cyrillic (Mac)
Multy-byte encodings, that also can be defined as "encoding" in XML/HTML:
54936 - Simplified Chinese (gb18030)
52936 - Simplified Chinese (hz-gb-2312)
20932 - Japanese (euc-jp)
50220 - Japanese with no halfwidth Katakana (iso-2022-jp)
51949 - EUC Korean (euc-kr)
*)
← →
DVM © (2014-02-02 10:20) [122]
> DevilDevil © (31.01.14 17:09) [120]
ты начиная с какой Delphi будешь поддерживать? Мне кажется вот такие:
{$if Defined(FPC) or Defined(MSWINDOWS)} появились не так уж и давно.
Defined() имеется в виду и OR / AND в дефайнах.
← →
DevilDevil © (2014-02-02 12:28) [123]> DVM © (02.02.14 10:20) [122]
С 6й версии
Вроде там нормально поддерживается Defined
← →
Незнакомец (2014-02-06 12:51) [124]Исходя из моего опыта использования iconv - могу сказать, что это лажа
Для той же самой кодировки 1252 например iconv лагает на символах #129,#141,#143,#144,#157
Ожидал лучшего качества
← →
Незнакомец (2014-02-06 16:15) [125]хотя... в вики вот что пишут:
According to the information on Microsoft"s and the Unicode Consortium"s websites, positions 81, 8D, 8F, 90, and 9D are
unused; however, the Windows API MultiByteToWideChar maps these to the corresponding C1 control codes.
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2014.09.14;
Скачать: [xml.tar.bz2];
Память: 0.72 MB
Время: 0.009 c