UTF-8 - Google

UTF-8

Z Wikipedii

Skocz do: nawigacji, szukaj

UTF-8 - system kodowania Unicodu.

Spis treści

[edytuj] Zalety i wady

Zalety

  • Każdy tekst w ASCII jest tekstem w UTF-8.
  • Å»aden znak spoza ASCII nie zawiera bajtu z ASCII.
  • Zachowuje porzÄ…dek sortowania UCS-4.
  • Typowy tekst ISO-Latin-X rozrasta siÄ™ w bardzo niewielkim stopniu po przekonwertowaniu do UTF-8.
  • Nie zawiera bajtów 0xFF i 0xFE, wiÄ™c Å‚atwo można go odróżnić od tekstu UTF-16.
  • O każdym bajcie wiadomo, czy jest poczÄ…tkiem znaku, czy też leży w jego Å›rodku (co nie jest prawdÄ…, np. w kodowaniu EUC).
  • Nie ma problemów z little endian vs. big endian.

Wady

  • Znaki CJK zajmujÄ… po 3 bajty zamiast 2 w kodowaniach narodowych.
  • Znaki alfabetów nieÅ‚aciÅ„skich zajmujÄ… po 2 bajty zamiast jednego w kodowaniach narodowych.
  • Obecnie (2007 rok) wiÄ™kszość zastosowaÅ„ w Internecie (poczta elektroniczna, usenet, HTML) wymaga deklarowania UTF-8 zgodnie ze standardem MIME. Dopiero w XHTML UTF-8 jest kodowaniem domyÅ›lnym.
  • UTF-8 nie używa przesunięć zasiÄ™gów, co stanowi dodatkowe utrudnienie dla implementacji UTF-8 (szczegóły poniżej)

[edytuj] Sposób kodowania

Mapowanie znaków Unikodu na ciągi bajtów:

  • 0x00 do 0x7f - bity 0xxxxxxx, gdzie iksy to bity od najwyższego liczÄ…c
  • 0x80 do 0x7FF - bity 110xxxxx 10xxxxxx
  • 0x800 do 0xFFFF - bity 1110xxxx 10xxxxxx 10xxxxxx
  • 0x10000 do 0x1FFFFF - bity 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
  • 0x200000 do 0x3FFFFFF - bity 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
  • 0x4000000 do 0x7FFFFFFF - bity 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Niestety oznacza to, że ten sam znak można zapisać na kilka sposobów. Przykładowo znak ASCII / (ukośnik) można zapisać jako:

  • 00101111
  • 11000000 10101111
  • 11100000 10000000 10101111
  • itd.

Stanowi to zagrożenie bezpieczeństwa m.in. dla serwerów, które sprawdzają obecność znaku / w ścieżkach.

Standard UTF-8 przewiduje, że każdy program MUSI odrzucać wszystkie znaki zapisane sekwencjami dłuższymi niż minimalna.

Problemu tego można byłoby uniknąć, przy okazji skracając nieznacznie długość danych, jeśli wykorzystano by zasadę przesunięć typu:

  • sekwencje 1-bajtowe kodujÄ… 0x80 różnych znaków - od 0x00 do 0x7F
  • sekwencje 2-bajtowe kodujÄ… 0x800 różnych znaków - od 0x80 do 0x87F
  • sekwencje 3-bajtowe kodujÄ… 0x10000 różnych znaków - od 0x880 do 0x1087F
  • itd.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

  • RFC 3629 - UTF-8, a transformation format of ISO 10646

Segment pism dla rodziców zanotował wzrost sprzedaży
Wszystkie miesiÄ™czniki dla rodziców zanotowaÅ‚y w lutym br. wyższÄ… sprzedaż ogółem w porównaniu z lutym ub.r. – wynika z danych ZwiÄ…zku Kontroli Dystrybucji Prasy.
Zawitkowski nowym naczelnym "Dziewczyny"
Robert Zawitkowski będzie redaktorem naczelnym miesięcznika młodzieżowego "Dziewczyna" (Axel Springer Polska).
Minister skarbu chce kuratora dla Polskiego Radia
Minister skarbu państwa Aleksander Grad zwrócił się do sądu o ustanowienie kuratora Polskiego Radia. Chce w ten sposób przeciwdziałać paraliżowi we władzach spółki.
TVN24 wyrusza na Euro 2008 helikopterem
Komentatorami rozgrywek Euro 2008 w TVN24 będą Jan Tomaszewski i Olaf Lubaszenko. Do obsługi mistrzostw Europy w piłce nożnej stacja wykorzysta też śmigłowiec Błękitny 24, który poleci do Austrii.
Polsat News ruszy 1 czerwca i z brytyjskÄ… koncesjÄ…
KanaÅ‚ informacyjny Polsatu wystartuje 1 czerwca br. i bÄ™dzie nadawaÅ‚ z brytyjskÄ… koncesjÄ… – dowiedziaÅ‚ siÄ™ "Presserwis".
Linki: Strona g³ówna