Narzędzia użytkownika

Narzędzia witryny


kodowanie_znakow

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

kodowanie_znakow [2013/12/15 14:02] (aktualna)
zozlak utworzono
Linia 1: Linia 1:
 +====== Kodowanie znaków ======
 +
 +Z bliżej nieznanych i niezrozumiałych przyczyn edycja tekstu niesformatowanego pod Windowsami często odbywa się jeszcze z użyciem archaicznej technologii //stron kodowych// (patrz //​historia//​ poniżej), co może nastręczać problemów przy ich otwieraniu w programach korzystających z technologii współczesnej - Unicodu.
 +
 +===== Historia =====
 +
 +Dziesiątki lat temu, kiedy opracowywano pierwszy standard kodowania znaków na urządzeniach elektronicznych,​ ważne było, aby każdy znak dało się zapisać jak najkrócej, bo wtedy można było zapisać więcej znaków na nośniku o tej samej pojemności i szybciej przesyłać znaki na odległość. W związku z tym oraz z faktem, że standard ten opracowywali Amerykanie, umożliwiał on zapisanie 128 różnych kodów, które wystarczały do zakodowania:​
 +  * dużych i małych liter alfabetu łacińskiego;​
 +  * cyfr;
 +  * podstawowych znaków diakrytycznych - przecinka, średnika, apostrofu, itp.;
 +  * znaków sterujących (nowa linia, kody sterujące specyficzne dla urządzeń w rodzaju dalekopisu - początek transmisji, koniec transmisji, itp.).
 +Tak powstał [[http://​pl.wikipedia.org/​wiki/​ASCII|ASCII]].
 +
 +Ponieważ ASCII zapisywał każdy znak na 7 bitach (bit to 0 lub 1 - jest podstawową jednostką informacji, na której operują komputery), a komputery operują na typach danych będących wielokrotnością 8 bitów, do wykorzystania na komputerach ASCII rozszerzono o 8 bit, który pozwolił na zakodowanie kolejnych 128 znaków. ​
 +Dodatkowe 128 znaków wystarczało na to, by zakodować tam np. znaki narodowe wybranej grupy językowej (np. języków zachodnioeuropejkich albo bałtyckich albo środkowoeuropejskchi. Niestety było to zbyt mało, aby umożliwić zakodowanie wszystkich znaków narodowych naraz. W ten sposób narodziły się tzw. //strony kodowe//, czyli predefiniowane zestawy tych dodatkowych 128 znaków.
 +
 +Z czasem komputery stały się na tyle wydajne, łącza na tyle szybkie, a dyski na tyle duże, że oszczędzanie na wielkości znaków przestało odgrywać znaczenie, zaczęto natomiast dostrzegać problemy związane ze stronami kodowymi:
 +  * nie jesteśmy w stanie zapisać w jednym pliku znaków z różnych stron kodowych (np. jednocześnie polskiego ł i niemieckiego ä)
 +  * aby poprawnie otworzyć plik musimy wiedzieć, w jakiej stronie kodowej jest zapisany.
 +
 +W związku z tym już w 1991 opracowano Unicode - standard kodowania znaków umożliwiający zakodowanie (prawie) dowolnej ich ilości (łącznie z tak egzotycznymi dla nas i "​znakochłonnymi"​ alfabetami jak chiński). Wdrażanie tego standardu nie szło zbyt szybko, wymagało bowiem przepisania ogromnych ilości oprogramowania,​ niemniej już od jakiegoś czasu praktycznie wszystkie programy wewnętrznie korzystają z Unicodu. Wyjątek stanowi edycja tekstów niesformatowanych pod Windowsami, o czym poniżej.
 +
 +===== Sedno problemu =====
 +
 +Niektóre edytory spotykane pod Windowsami (np. niesczęsny //​Notatnik//​ ale też **edytor plików do wbudowany w Statę**) zapisują je z użyciem //stron kodowych// (patrz wyżej). Powoduje to, że pliki te mogą sprawiać problemy na platformach wykorzystujących Unicode, w szczególności na odrze.
 +
 +===== Rozwiązanie problemu =====
 +
 +Używanie edytorów korzystających z Unicodu, np.
 +  * R-studio z wybranym domyślnym kodowaniem plików UTF-8 (//​Tools->​Global options...//​ i tam zakładka //Globals// i w polu //Default text encoding// wybrać //UTF-8//);
 +  * [[http://​notepad-plus-plus.org/​|Notepada++]]
 +    * może on zostać zintegrowany ze Statą - patrz [[http://​huebler.blogspot.com/​2008/​04/​stata.html]] oraz [[http://​www.kgolyaev.com/​sites/​default/​files/​Stata_Npp_Syntax_Guide.pdf]]
 +
  
kodowanie_znakow.txt · ostatnio zmienione: 2013/12/15 14:02 przez zozlak