W jakim celu zmieniono PAnsichar i Pwidechar powyżej wersji 2009?

0

Zastanawiam się jaki był cel tej zmiany, że od wersji Delphi 2009 PChar=PWideChar, a nie jak wcześniej PChar=PAnsiChar. Sprawia to dużo problemów przy przenoszeniu kodu napisanego w starszych wersjach Delphi, a chciałbym (i myślę że nie tylko ja) się dowiedzieć czym się kierowali programiści Delphi wprowadzając tą zmianę?

0

Z Wikipedii:

http://en.wikipedia.org/wiki/Wide_character napisał(a)

A wide character is a computer character datatype that generally has a size greater than the traditional 8-bit character. The increased datatype size allows for the use of larger coded character sets.

Czyli wide obsługuje więcej znaków (właściwie więcej zestawów znaków).

0

Tym, że ANSI to przeżytek i domyślne to ono było, ale w Windows 98. Microsoft od dawna zaleca, żeby aplikacje pracowały wewnętrznie na napisach w kodowaniu UTF-16.

0

Chcieli być bardziej zgodni z systemem operacyjnym Windows, w wypadku wielojęzycznych programów Unicode jest łatwiejszy w obsłudze niż ANSI, problem w tym, że nie samym Windows człowiek żyje.

Najnowsze Delphi umożliwia pisanie programów pod różne systemy, mam nadzieje, że wkrótce zacznie im doskwierać UTF-16 (jako najgorsze możliwe kodowanie Unicode) i dodadzą jakąś opcję do tego.

Dla mnie to była mało strategiczna zagrywka. Równie dobrze mogli zamienić swoje źródła (VCL) z typów domyślnych na UTF-16, a programistom dać wolną rękę.
Zamiast tego postanowili zmienić typy domyślne. W dużym oprogramowaniu takich zagrywek się nie robi.

Np. w Linux domyślnym kodowaniem AFAIK jest UTF-8, które jest zgodne z kodowaniem ANSI i praktycznie nie trzeba w ogóle zmieniać oprogramowania żeby to kodowanie stosować - po prostu jest to kolejna strona kodowa.

0

Np. w Linux domyślnym kodowaniem AFAIK jest UTF-8, które jest zgodne z kodowaniem ANSI i praktycznie nie trzeba w ogóle zmieniać oprogramowania żeby to kodowanie stosować - po prostu jest to kolejna strona kodowa.
Z wyjątkiem sekwencji BOM, która jest częścią standardu, a przez programy linuksowe obsługiwana źle.
Tak więc obsługa UTF-8 pod Linuksem jest „pod warunkiem że w pliku nie ma BOM”

zacznie im doskwierać UTF-16 (jako najgorsze możliwe kodowanie Unicode)
możesz rozwinąć, dlaczego miałoby?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0