-
1. Data: 2009-08-18 06:29:29
Temat: Biblioteki C++ dla UNICODE
Od: "Megas" <k...@o...eu>
Witam,
Czy ktos zna albo lepiej poleca jakas fajna biblioteke C++ obslugujaca
system UNICODE?
Do teraz uzywałem bardzo fajnej biblioteki C++ o nazwie 'Poco C++ library',
która zawiera kod do obslugi sieci (rozne protokoly), packery, loggery,
obsluga baz danych itp... Wszystko czego tygrysy potrzebuja najbardziej, ale
wszystko opiera sie na sztywno an std::string.
Teraz, zastanawiam sie nad przejsciem do standardu UNICODE i dlatego pytam
czy ktos zna biblioteke o podobnym zakresie ale dla systemu UNICODE?
Wielkie dzieki i pozdrawiam.
Marcin
-
2. Data: 2009-08-18 07:25:16
Temat: Re: Biblioteki C++ dla UNICODE
Od: Paweł Kierski <n...@p...net>
Megas wrote:
> Witam,
>
> Czy ktos zna albo lepiej poleca jakas fajna biblioteke C++ obslugujaca
> system UNICODE?
> Do teraz uzywałem bardzo fajnej biblioteki C++ o nazwie 'Poco C++ library',
> która zawiera kod do obslugi sieci (rozne protokoly), packery, loggery,
> obsluga baz danych itp... Wszystko czego tygrysy potrzebuja najbardziej, ale
> wszystko opiera sie na sztywno an std::string.
>
> Teraz, zastanawiam sie nad przejsciem do standardu UNICODE i dlatego pytam
> czy ktos zna biblioteke o podobnym zakresie ale dla systemu UNICODE?
UNICODE da się obsługiwać w std::string - w reprezentacji UTF-8. Choć
wtedy długość napisu nie jest równa długości ciągu ośmiobitowych
(zwykle) znaków, porównania nie są "proste". Pytanie, jak jest
reprezentowany UNICODE tam, gdzie chcesz go używać.
--
Paweł Kierski
n...@p...net
-
3. Data: 2009-08-18 08:10:30
Temat: Re: Biblioteki C++ dla UNICODE
Od: "Megas" <k...@o...eu>
> UNICODE da się obsługiwać w std::string - w reprezentacji UTF-8. Choć
> wtedy długość napisu nie jest równa długości ciągu ośmiobitowych
> (zwykle) znaków, porównania nie są "proste". Pytanie, jak jest
> reprezentowany UNICODE tam, gdzie chcesz go używać.
Chciałbym uzywac UNICODE w formacie uzywanym przez Windows, czyli kazdy znak
to wchar_t - po dwa bajty na znak. Dla biblioteki STL jest to std::wstring.
Czy sa jakies biblioteki C++ wspierajace standard UNCODE a udostepniajace
funkcjonalnosci w stylu: logger, obsluga protokolów sieciowych (HTTP, SSL,
POP3 itp...), obsluga systemu plików, obsluga baz danych itp...?
-
4. Data: 2009-08-18 08:38:06
Temat: Re: Biblioteki C++ dla UNICODE
Od: Paweł Kierski <n...@p...net>
Megas wrote:
>> UNICODE da się obsługiwać w std::string - w reprezentacji UTF-8. Choć
>> wtedy długość napisu nie jest równa długości ciągu ośmiobitowych
>> (zwykle) znaków, porównania nie są "proste". Pytanie, jak jest
>> reprezentowany UNICODE tam, gdzie chcesz go używać.
>
> Chciałbym uzywac UNICODE w formacie uzywanym przez Windows, czyli kazdy znak
> to wchar_t - po dwa bajty na znak. Dla biblioteki STL jest to std::wstring.
> Czy sa jakies biblioteki C++ wspierajace standard UNCODE a udostepniajace
> funkcjonalnosci w stylu: logger
Pewnie tak, kwestia poszukania.
> , obsluga protokolów sieciowych (HTTP, SSL,
> POP3 itp...), obsluga systemu plików, obsluga baz danych itp...?
Tu wracamy do pytania, gdzie chcesz używać. Protokoły sieciowe są co
najwyżej 8-bitowe, wszystko inne musi być jakoś kodowane/reprezentowane.
Np. w POP3 czy SMTP elementy nagłówka (które powinny być 7-bitowe) mogą
być kodowane np. za pomocą UTF-8 + Base64/QuotedPrintable lub UTF-7.
W praktyce - na pewno przyda się komplet konwerterów
UCS-2/UTF-16<->UTF-8 i UTF-32 (dla Windows wystarczy UTF-16<->UTF-8).
Najprościej będzie chyba użyć iconv'a, ale możesz oprzeć się na:
http://unicode.org/Public/PROGRAMS/CVTUTF/ . W ogóle polecam przejrzenie
http://unicode.org/Public - sporo ciekawostek tam jest 8-)
--
Paweł Kierski
n...@p...net
-
5. Data: 2009-08-18 08:38:14
Temat: Re: Biblioteki C++ dla UNICODE
Od: Daniel Janus <n...@k...pl>
Dnia 18.08.2009 Megas <k...@o...eu> napisał/a:
> Chciałbym uzywac UNICODE w formacie uzywanym przez Windows, czyli kazdy znak
> to wchar_t - po dwa bajty na znak.
Nie ma czegoś takiego jak "Unicode w jakimś formacie". To znaczy
jest, ale nie nazywa się tak. I nie da się kodować Unikodu w dwóch
bajtach na znak.
Mieszasz pojęcia. Doczytaj może o Unicode i takich pojęciach jak code
point, kodowania, UTF-16/UCS-2, support level, BMP, ... Możesz zacząć od
http://www.joelonsoftware.com/articles/Unicode.html .
--
Daniel 'Nathell' Janus, m...@n...korpus.pl, http://danieljanus.pl
We made a big mistake 300 years ago when we separated technology and
humanism. ... It's time to put the two back together.
-- Michael Dertouzos, Scientific American, July 1997