Article View: pl.comp.lang.java
Article #153122Re: kodowania znaków
From: Paweł Kierski
Date: Sun, 27 Nov 2011 08:15
Date: Sun, 27 Nov 2011 08:15
31 lines
2823 bytes
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-mailReferences:
<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