Unikod i nagłówki

Autor: Konik Bujany (pt_at_pisz.na.niusy.invalid)
Data: Mon 14 Aug 2000 - 05:12:04 MET DST


This is a multi-part message in MIME format.

------=_NextPart_000_04D0_01C005AC.A3BDC290
Content-Type: text/plain;
        charset="iso-8859-2"
Content-Transfer-Encoding: 8bit

  "Marcin Jagodzinski" <pisz_na_adres_z_reply_to_at_webcorp.com.pl>
    IMHO uzycie UTF umozliwia stosowanie znakow z wielu roznych alfabetow na
raz. I to sie moze czasem przydac.
  Umożliwia także używanie znaków narodowych przed nagłówkami określającymi
encoding.
Kolejność pól nagłówka nie ma znaczenia dla możliwości ich rozkodowania, bo
istota problemu jest zupełnie inna.

Żadne z pól nagłówka nie zawiera informacji o kodowaniu jako takiej. Pole
ContentType zawiera informacje o zawartości, w którym może ale nie musi
wystąpić deklaracja kodowania. Nie ma sensu np. deklarowanie kodowania (w
sensie podania charset=cośtam) dla przesyłki wieloczęściowej, ponieważ
poszczególne części są zasadniczo niezależne od siebie. Mogą zawierać różne
treści, dla których w ogóle nie ma sensu pojęcie kodowania znaków. Tym
bardziej pole to (ContentType) nie może służyć do rozkodowania innych pól
nagłówka. Każde z pól nagłówka musi więc dać się rozkodować niezależnie od
zadeklarowania takiej czy innej zawartości przesyłki. Jest to potrzebne np.
dla uzyskania możliwości filtrowania, które w protokole Nntp może być
zrealizowane tylko po stronie czytnika. Oczywiście nie miałoby sensu
pobieranie całych artykułów, by je sobie skasować. Rozszerzono więc protokół
o możliwość pobrania informacji przeglądowych o artykułach poleceniem
(X)Over. Są one pobierane jednym ciągiem bez potrzeby wysyłania żądań
kolejnych, w odróżnieniu np. od całych artykułów, zwykle z osobnej bazy.
Przesyłanie dużej ilości rekordów i używanie osobnych baz ma istotne
znaczenie dla wydajności filtrowania. Każdy zwracany rekord zawiera tylko
podstawowe informacje o artykule takie jak autor, identyfikator, odwołania
do poprzednich. Z powodów, które wymieniłem nie ma czegoś takiego jak
kodowanie. W każdym razie dzięki pobraniu tych informacji i ich
jednoznaczności, w tym sposobu zakodowania, czytnik podejmuje decyzję o
pobraniu lub niepobraniu artykułu.

Możliwość użycia w polach nagłówka kodowania Utf-8 Unikodu bez specjalnych
zabiegów jest tylko konsekwencją przyjęcia go za domyślne kodowanie we
wszystkich nowych i uaktualnianych specyfikacjach. Nie jest jedynym
rozwiązaniem problemu, bo znaki narodowe można przesyłać bez niego.
Wystarczy zastosować techniki opisane w specyfikacji Mime polegające na
wpisaniu deklaracji kodowania w łańcuch sprowadzony do reprezentacji
7-bitowej, przed wystąpieniem kodów >127, które interpretuje się zgodnie z
jakimś kodowaniem. W ten sposób czytnik również będzie mógł rozkodować taki
łańcuch zgodnie z tym, jak został zakodowany tyle, że będzie musiał znać
podany sposób kodowania. W praktyce nie jest to problemem ponieważ zwykle i
tak trzeba go znać, by rozkodować treść przesyłki. Nie ma szans, by w
najbliższym czasie się to zmieniło.

Dlatego właśnie tak istotne jest, by oprogramowanie internetowe umiało
używać różnych kodowań a nie tylko jednego.

------=_NextPart_000_04D0_01C005AC.A3BDC290
Content-Type: text/html;
        charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-2">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV>"Marcin Jagodzinski" &lt;<A=20
  =
href=3D"mailto:pisz_na_adres_z_reply_to_at_webcorp.com.pl">pisz_na_adres_z_r=
eply_to_at_webcorp.com.pl</A>&gt;</DIV>
  <BLOCKQUOTE=20
  style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
    <DIV>IMHO uzycie UTF umozliwia stosowanie znakow z wielu roznych =
alfabetow=20
    na raz. I to sie moze czasem przydac.</DIV></BLOCKQUOTE>
  <DIV>Umo=BFliwia tak=BFe u=BFywanie znak=F3w narodowych przed =
nag=B3=F3wkami okre=B6laj=B1cymi=20
  encoding.</DIV></BLOCKQUOTE>
<DIV>Kolejno=B6=E6 p=F3l nag=B3=F3wka nie ma znaczenia dla =
mo=BFliwo=B6ci ich rozkodowania, bo=20
istota problemu jest zupe=B3nie inna. </DIV>
<DIV>&nbsp;</DIV>
<DIV>=AFadne z p=F3l nag=B3=F3wka nie zawiera informacji o kodowaniu =
jako takiej. Pole=20
ContentType zawiera informacje o zawarto=B6ci, w kt=F3rym mo=BFe ale nie =
musi wyst=B1pi=E6=20
deklaracja kodowania. Nie ma sensu np. deklarowanie kodowania (w sensie =
podania=20
charset=3Dco=B6tam) dla przesy=B3ki wielocz=EA=B6ciowej, poniewa=BF =
poszczeg=F3lne cz=EA=B6ci s=B1=20
zasadniczo niezale=BFne od siebie. Mog=B1 zawiera=E6 r=F3=BFne tre=B6ci, =
dla kt=F3rych w og=F3le=20
nie ma sensu poj=EAcie kodowania znak=F3w. Tym bardziej pole to =
(ContentType) nie=20
mo=BFe s=B3u=BFy=E6 do rozkodowania innych p=F3l nag=B3=F3wka. Ka=BFde z =
p=F3l nag=B3=F3wka musi wi=EAc=20
da=E6 si=EA rozkodowa=E6 niezale=BFnie od zadeklarowania takiej czy =
innej zawarto=B6ci=20
przesy=B3ki. Jest to potrzebne np. dla uzyskania mo=BFliwo=B6ci =
filtrowania, kt=F3re w=20
protokole Nntp mo=BFe by=E6 zrealizowane tylko po stronie czytnika. =
Oczywi=B6cie nie=20
mia=B3oby sensu pobieranie ca=B3ych artyku=B3=F3w, by je sobie =
skasowa=E6. Rozszerzono=20
wi=EAc protok=F3=B3 o mo=BFliwo=B6=E6 pobrania informacji =
przegl=B1dowych o artyku=B3ach=20
poleceniem (X)Over. S=B1 one pobierane jednym ci=B1giem bez potrzeby =
wysy=B3ania =BF=B1da=F1=20
kolejnych, w odr=F3=BFnieniu np. od ca=B3ych artyku=B3=F3w, zwykle z =
osobnej bazy.=20
Przesy=B3anie du=BFej ilo=B6ci rekord=F3w i u=BFywanie osobnych baz ma =
istotne znaczenie=20
dla wydajno=B6ci filtrowania. Ka=BFdy zwracany rekord zawiera tylko =
podstawowe=20
informacje o artykule takie jak autor, identyfikator, odwo=B3ania do =
poprzednich.=20
Z powod=F3w, kt=F3re wymieni=B3em nie ma czego=B6 takiego jak kodowanie. =
W ka=BFdym razie=20
dzi=EAki pobraniu tych informacji&nbsp;i ich jednoznaczno=B6ci, w tym =
sposobu=20
zakodowania, czytnik podejmuje decyzj=EA o pobraniu lub niepobraniu=20
artyku=B3u.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Mo=BFliwo=B6=E6 u=BFycia w polach nag=B3=F3wka kodowania Utf-8 =
Unikodu bez specjalnych=20
zabieg=F3w jest tylko konsekwencj=B1 przyj=EAcia go za domy=B6lne =
kodowanie we=20
wszystkich nowych i uaktualnianych specyfikacjach. Nie jest jedynym =
rozwi=B1zaniem=20
problemu, bo znaki narodowe mo=BFna przesy=B3a=E6 bez niego. Wystarczy =
zastosowa=E6=20
techniki opisane w specyfikacji Mime polegaj=B1ce na wpisaniu deklaracji =
kodowania=20
w =B3a=F1cuch sprowadzony do reprezentacji 7-bitowej, przed =
wyst=B1pieniem kod=F3w=20
&gt;127, kt=F3re interpretuje si=EA zgodnie z jakim=B6 kodowaniem. W ten =
spos=F3b=20
czytnik r=F3wnie=BF b=EAdzie m=F3g=B3 rozkodowa=E6 taki =B3a=F1cuch =
zgodnie z tym, jak zosta=B3=20
zakodowany tyle, =BFe b=EAdzie musia=B3 zna=E6 podany spos=F3b =
kodowania. W praktyce nie=20
jest to problemem poniewa=BF zwykle i tak trzeba go zna=E6, by =
rozkodowa=E6 tre=B6=E6=20
przesy=B3ki. Nie ma szans, by w najbli=BFszym czasie si=EA to =
zmieni=B3o. </DIV>
<DIV>&nbsp;</DIV>
<DIV>Dlatego w=B3a=B6nie tak istotne jest, by oprogramowanie internetowe =
umia=B3o=20
u=BFywa=E6 r=F3=BFnych kodowa=F1 a nie tylko =
jednego.</DIV></BODY></HTML>

------=_NextPart_000_04D0_01C005AC.A3BDC290--



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 16:35:50 MET DST