zestaw znaków to zestaw znaków, czyli „glify "tj. symbole wizualne reprezentujące jednostki komunikacji. Litera a
jest glifem, a więc jest €
(znak euro). Zestawy znaków zazwyczaj odwzorowują liczby całkowite (współrzędne) na każdą postać, ale to kodowanie dyktuje binarną reprezentację postaci.
Jestem programistą ruby, więc oto kilka przykładów, które pomogą Ci zrozumieć pojęcia.
To pokazuje, w jaki sposób kod Unicode mapuje kody od znaków, ale nie w jaki sposób jest przechowywany każdy bajt. (Rubin 1,9 domyślnie na Unicode.)
>> 'a'.codepoints.to_a
=> [97]
>> '€'.codepoints.to_a
=> [8364]
następuje ujawnia sposób UTF-8 przechowuje kodowania każdej postaci jako bajty (0 thru-255 w podstawie 10). (Domyślne kodowanie Ruby 1.9 to UTF-8.) Ponieważ 8364 (baza 10) jest zbyt duży, aby zmieścić się w jednym bajcie, UTF-8 ma specjalną strategię na podzielenie go na wiele bajtów. Wikipedia pokazuje algorytm kodowania UTF-8, jeśli chcesz zagłębić się w implementację.
>> 'a'.bytes.to_a
=> [97]
>> '€'.bytes.to_a
=> [226, 130, 172]
Oto samo w ISO-8859-15 zestawu char:
>> 'a'.encode('iso-8859-15').codepoints.to_a
=> [97]
>> '€'.encode('iso-8859-15').codepoints.to_a
=> [164]
I kodowania ISO-8859-15:
>> 'a'.encode('iso-8859-15').bytes.to_a
=> [97]
>> '€'.encode('iso-8859-15').bytes.to_a
=> [164]
Zauważ, że ISO-8859- 15 punktów kodowych pasuje do reprezentacji bajtów.
Oto wpis blogu, który może być przydatny: http://blog.grayproductions.net/articles/what_is_a_character_encoding. Wpisy od 1 do 3 są dobre, jeśli nie chcesz, aby były zbyt specyficzne dla rubinów.
Mam subskrypcję Safari. Właśnie pobrałem rozdział, dzięki. – Deane
samo tutaj z subskrypcją na safari :-) dzięki, dobrze wyglądam –