Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1381918147
aka
2013-10-16 14:09
2014.09.14
IdHTTP работа с сессиями


15-1390470681
ВладОшин
2014-01-23 13:51
2014.09.14
WebSocket/ Хочу перепилить idHttpServer или что другое


15-1392064202
Юрий
2014-02-11 00:30
2014.09.14
С днем рождения ! 11 февраля 2014 вторник


2-1381816621
aka
2013-10-15 09:57
2014.09.14
JSON русские символы


2-1381834603
v1.0
2013-10-15 14:56
2014.09.14
множество





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский