SPECS: coppermine-gallery.spec - upgrade to 1.4.14 (sec fixes!), -...

Tomasz Pala gotar w polanet.pl
Wto, 13 Lis 2007, 19:36:25 CET


2 poprawki:

On Tue, Nov 13, 2007 at 18:57:06 +0100, Tomasz Pala wrote:

> > > A jak mam bazę latin2 i domyślne połączenia latin1, to skąd w bazie
> > > biorą się unikodowe znaczki?
> > 
> > Wysyłasz unikod, twierdzisz, że to latin1 i każesz zapisać w latin2.
> > Czego się spodziewasz?

Domyślne charsety mysqla mam latin2 - czyli jedyna niezgodność jest tu
na poziomie aplikacji, która do wszystkiego w latin2 pchała unikod nie
deklarując tego. I ten unikod się zapisywał, zamiast zostać przerobiony;
swoją drogą ciekawe, że UTF-8 zapisuje się w ogóle do latin2... podczas
gdy na latin1 każda literka kończy jako '??'.

> ustalenie z MySQL-em, po jakiemu rozmawiają. Wystarczy dopisać to set
> names, tak jak zresztą sugerują tutaj:
> http://coppermine-gallery.net/forum/index.php?topic=24129.msg152210
> żeby zawartość bazy zgadzała się z deklarowanymi charsetami. Dla

W zasadzie to nie 'set names' tylko 'set character set' byłoby tu
odpowiedniejsze, bo jak ktoś deklaruje na poziomie bazy danych określone
collation, to zapewne świadomie chce właśnie jego używać.

Koniec poprawek, niżej uzupełnienia.

> przypomnienia w CPG cały czas wyświetlało się dobrze, mimo że w bazie
> było źle - dwukrotne (od)unikodowywanie po prostu robił.

Tylko dlatego, że miałem latin2 - na latin1 skończyłbym z pytajnikami.

> Przy okazji w powyższym widać myślenie twórców CPG - mysql nie powinien
> robić w ogóle żadnej konwersji, bo można stracić informacje, zapisujmy
> więc 'jak leci, bajt po bajcie'. Szkoda, że bez powiadamiania o tym

I takie zapisywanie działa na latin2 (przynajmniej w zakresie używanych
przeze mnie znaków). Tylko chyba od binarnych danych są inne typy...

> fakcie MySQL, bo w latin1 to on tych bajtów nie zapisze.

-- 
Tomasz Pala <gotar w pld-linux.org>


Więcej informacji o liście dyskusyjnej pld-devel-pl