🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153122

Re: kodowania znaków

#153122
From: Paweł Kierski
Date: Sun, 27 Nov 2011 08:15
31 lines
2823 bytes
W dniu 2011-11-13 16:55, nullpointer pisze:
> Zakładam że jesteś w stanie wygenerować jakoś taki plik. Wygeneruj, a
> potem podanym wyżej sposobem zapisz go w różnych kodowaniach (a
> następnie z tych kodowań odczytaj) i sprawdź czy:
> a) Po odczycie masz to co przed zapisem
> b) Pliki w różnych kodowaniach się czymś różnią (np rozmiarem)
> i czy Ci to przeszkadza
>
> Zasadniczo UTF-8 powinien Ci wystarczyć. Idea tego kodowania polega na
> tym, że znaki (o ile się da) kodowane są na jednym bajcie, a jeśli się
> nie da, to masz w tekście potworki tylu 0x0123itd... które kodują znaki
> spoza 8-bitowego zestawu.
>
> Dla UTF-16 każdy znak zapisywany jest na dwóch bajtach, więc pliki będą
> większe, a 16 bitów zdaje się i tak nie wyczerpuje wszystkich
> dopuszczalnych znaków.

Nie do końca prawda - dla znaków z poza tzw. Basic Multilingual Plane
(np. hieroglifów egipskich) przewidziane jest kodowanie na 4 bajtach
w ramach UTF-16 (tzw. surogaty). Tym właśnie UTF-16 różni się od UCS-2.
UTF-16 potrafi (tak jak UTF-8, ale nie UCS-2) zapisać całą dziedzinę
znaków Unicode (aktualnie 2^21 o ile pamiętam).

Do bazowego pytania - jeśli znaków z poza ASCII będzie względnie mało,
a zależy na małym rozmiarze pliku, to UTF-8 jest najlepszym wyborem.
Jeśli dużo ma być znaków z CJK (Chińskie/Japońskie/Koreańskie), to UTF-8
będzie kodował te znaki na trzech bajtach, a UTF-16 - na 2.

-- 
     Paweł Kierski
     news@pkierski.net
Technical Details
Message-ID: <jasrie$dkq$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
References: <76fe3b04-a851-44de-9908-1745ab57fdc4@r9g2000vbw.googlegroups.com> <j9eavk$8qq$1@news.onet.pl> <j9ebcd$ad7$1@news.onet.pl> <j9ebh8$agn$1@news.onet.pl> <j9ebl8$b6b$1@news.onet.pl> <bf023f23-90da-41f7-95a6-e7b2c6965f61@s5g2000vbe.googlegroups.com> <j9fp4q$a7f$1@news.onet.pl> <d1397dfb-f5be-4258-a9a3-c4159e04fff3@s7g2000yqa.googlegroups.com> <j9lqh7$vjh$1@news.onet.pl> <132092f3-812b-43b1-b923-c98b09aa5ca1@a16g2000yqk.googlegroups.com> <j9opa3$4pm$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
From: Paweł Kierski <news@pkierski.net>
Newsgroups: pl.comp.lang.java
Subject: Re: kodowania znaków
Date: Sun, 27 Nov 2011 09:15:10 +0100
Organization: http://onet.pl
Lines: 31
Message-ID: <jasrie$dkq$1@news.onet.pl>
References: <76fe3b04-a851-44de-9908-1745ab57fdc4@r9g2000vbw.googlegroups.com> <j9eavk$8qq$1@news.onet.pl> <j9ebcd$ad7$1@news.onet.pl> <j9ebh8$agn$1@news.onet.pl> <j9ebl8$b6b$1@news.onet.pl> <bf023f23-90da-41f7-95a6-e7b2c6965f61@s5g2000vbe.googlegroups.com> <j9fp4q$a7f$1@news.onet.pl> <d1397dfb-f5be-4258-a9a3-c4159e04fff3@s7g2000yqa.googlegroups.com> <j9lqh7$vjh$1@news.onet.pl> <132092f3-812b-43b1-b923-c98b09aa5ca1@a16g2000yqk.googlegroups.com> <j9opa3$4pm$1@news.onet.pl>
NNTP-Posting-Host: 87-207-54-141.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1322381710 13978 87.207.54.141 (27 Nov 2011 08:15:10 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Sun, 27 Nov 2011 08:15:10 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.24) Gecko/20111103 Thunderbird/3.1.16
In-Reply-To: <j9opa3$4pm$1@news.onet.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit