<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.multimediaexpo.cz/mmecz/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=UTF-8</id>
		<title>UTF-8 - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=UTF-8"/>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=UTF-8&amp;action=history"/>
		<updated>2026-05-01T20:39:10Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=UTF-8&amp;diff=367288&amp;oldid=prev</id>
		<title>Sysop: 1 revizi</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=UTF-8&amp;diff=367288&amp;oldid=prev"/>
				<updated>2013-10-13T23:04:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 revizi&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 13. 10. 2013, 23:04&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=UTF-8&amp;diff=367287&amp;oldid=prev</id>
		<title>Sysop: + Nový článek...</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=UTF-8&amp;diff=367287&amp;oldid=prev"/>
				<updated>2009-05-13T21:12:47Z</updated>
		
		<summary type="html">&lt;p&gt;+ Nový článek...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''UTF-8''' je zkratka pro ''UCS Transformation Format''. Je to způsob kódování řetězců znaků [[Unicode]]/[[UCS]] do sekvencí [[byte|bajtů]]. Varianta '''[[UTF-16]]''' kóduje řetězce do posloupností 16bitových slov (2 bajty), Varianta '''[[UTF-32]]''' do 32 bitových slov (4 bajty). UTF-8 je definováno v ISO 10646-1:2000 Annex D, v RFC 3629 a v Unicode 4.0.&lt;br /&gt;
&lt;br /&gt;
== Důvody vzniku, základní vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Přirozené kódování znaků Unicode/UCS do 2 nebo 4 bajtů se nazývá UCS-2 a UCS-4. Pokud se nespecifikuje jinak, ukládá se nejprve nejvýznamnější bajt (tzv. konvence [[big-endian]]). S řetězci uloženými ve formátu UCS-2 nebo UCS-4 je spojeno několik problémů:&lt;br /&gt;
* Uložení textu je několikanásobně náročnější na paměť.&lt;br /&gt;
* Některé bajty v řetězci mohou obsahovat binární nuly, které mají zvláštní význam v některých programovacích jazycích.&lt;br /&gt;
* Některé bajty mohou obsahovat znaky, které mají zvláštní význam pro operační systém (např. „/“, „\“).&lt;br /&gt;
Z uvedených důvodů není formát UCS-2 a UCS-4 vhodný pro ukládání řetězců do souborů.&lt;br /&gt;
&lt;br /&gt;
Tyto problémy řeší kódování UTF-8, které má následující vlastnosti:&lt;br /&gt;
* UCS znaky U+0000 až U+007F jsou kódovány jednoduše jako bajt &amp;lt;tt&amp;gt;0x00&amp;lt;/tt&amp;gt; až &amp;lt;tt&amp;gt;0x7F&amp;lt;/tt&amp;gt;. To znamená, že řetězce obsahující pouze [[ASCII]] znaky mají shodné kódování v UTF-8 i v ASCII.&lt;br /&gt;
* Všechny znaky větší než U+007F jsou kódovány jako sekvence několika bajtů, z nichž každý má nastaven nejvyšší [[bit]] na jedničku. To znamená, že bajty nemohou být zaměněny s žádným ASCII znakem.&lt;br /&gt;
* První bajt sekvence, která reprezentuje ne-ASCII znak, je vždy v rozsahu &amp;lt;tt&amp;gt;0xC0&amp;lt;/tt&amp;gt; až &amp;lt;tt&amp;gt;0xFD&amp;lt;/tt&amp;gt; a určuje, kolik bajtů následuje. Všechny následující znaky sekvence jsou v rozsahu &amp;lt;tt&amp;gt;0x80&amp;lt;/tt&amp;gt; až &amp;lt;tt&amp;gt;0xBF&amp;lt;/tt&amp;gt;. To umožňuje snadnou synchronizaci a odolnost proti ztrátě některých bajtů.&lt;br /&gt;
* Může být kódován celý rozsah UCS 2&amp;lt;sup&amp;gt;31&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* Zakódované znaky mohou být až 6 bajtů dlouhé, ale základní 16bitové znaky BMP (basic multilingual plane) jsou jen 1 až 3 bajty dlouhé.&lt;br /&gt;
* Pořadí big-endian (nejvýznamnější byte ukládán jako první) je zachováno.&lt;br /&gt;
* Bajty s hodnotou &amp;lt;tt&amp;gt;0xFE&amp;lt;/tt&amp;gt; a &amp;lt;tt&amp;gt;0xFF&amp;lt;/tt&amp;gt; nejsou nikdy použity.&lt;br /&gt;
&lt;br /&gt;
== Způsob kódování znaků ==&lt;br /&gt;
&lt;br /&gt;
Následující tabulka ukazuje způsob kódování. Pozice bitů „xxx“ jsou vyplněny bity kódu znaku, vpravo jsou nejméně významné bity. Pro kód znaku musí být použita nejkratší možná sekvence bajtů. Počet bitů v prvním bajtu ve vícebajtové sekvenci odpovídá počtu bajtů sekvence.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
| U+00000000 - U+0000007F&lt;br /&gt;
| 0xxxxxxx&lt;br /&gt;
|- &lt;br /&gt;
| U+00000080 - U+000007FF&lt;br /&gt;
| 110xxxxx 10xxxxxx&lt;br /&gt;
|- &lt;br /&gt;
| U+00000800 - U+0000FFFF&lt;br /&gt;
| 1110xxxx 10xxxxxx 10xxxxxx&lt;br /&gt;
|- &lt;br /&gt;
| U+00010000 - U+001FFFFF&lt;br /&gt;
| 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx&lt;br /&gt;
|- &lt;br /&gt;
| U+00200000 - U+03FFFFFF&lt;br /&gt;
| 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx&lt;br /&gt;
|- &lt;br /&gt;
| U+04000000 - U+7FFFFFFF&lt;br /&gt;
| 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== BOM ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right&amp;quot;&lt;br /&gt;
!Sekvence bajtů (hexadec)!!Kódování&lt;br /&gt;
|-&lt;br /&gt;
|00 00 FE FF || UTF-32 big-endian&lt;br /&gt;
|-&lt;br /&gt;
|FF FE 00 00 || UTF-32 little-endian&lt;br /&gt;
|-&lt;br /&gt;
|FE FF || UTF-16 big-endian&lt;br /&gt;
|-&lt;br /&gt;
|FF FE || UTF-16 little-endian&lt;br /&gt;
|-&lt;br /&gt;
|EF BB BF || UTF-8&lt;br /&gt;
|}&lt;br /&gt;
Znak s kódem U+FEFF (v [[desítková soustava|desítkové soustavě]] 65279) se nazývá '''BOM''' ('''Byte-Order Mark''', česky přibližně „označení pořadí bajtů“), někdy také „UTF signatura“. V kódování UTF-8 je tento znak reprezentován trojicí bajtů &amp;lt;tt&amp;gt;0xEF 0xBB 0xBF&amp;lt;/tt&amp;gt;, v kódování UTF-16 [[big-endian]] dvojicí bajtů &amp;lt;tt&amp;gt;0xFE 0xFF&amp;lt;/tt&amp;gt; a v UTF-16 [[little-endian]] &amp;lt;tt&amp;gt;0xFF 0xFE&amp;lt;/tt&amp;gt;. Grafický význam znaku je „nedělitelná mezera nulové šířky“ (''zero-width no-break space''), je tak podobný znaku U+2060 (''word joiner''). [http://unicode.org/faq/utf_bom.html#BOM]&lt;br /&gt;
&lt;br /&gt;
Hlavním důvodem užití tohoto znaku je rozlišení pořadí ukládání bajtů big-endian nebo little-endian v UTF-16 a odlišení samotného UTF-16 od UTF-8. V případě záměny pořadí bajtů není znak U+FFFE platný Unicode znak, navíc v kódování UTF-8 se bajty &amp;lt;tt&amp;gt;0xFE&amp;lt;/tt&amp;gt; a &amp;lt;tt&amp;gt;0xFF&amp;lt;/tt&amp;gt; nesmí vyskytovat. Užití BOM v UTF-8 je pro účel rozpoznání pořadí ukládání bajtů nadbytečné, nicméně množství aplikací operačního systému Microsoft Windows používá tento znak na začátku souboru pro rozlišení souborů uložených ve formátu UTF-8.&lt;br /&gt;
V některých systémech ([[POSIX]]) není tato signatura používána a může být zdrojem problémů.&lt;br /&gt;
&lt;br /&gt;
== Související články ==&lt;br /&gt;
* [[CESU-8]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Článek z Wikipedie}}&lt;br /&gt;
[[Kategorie:Kódování abecedy]]&lt;br /&gt;
[[Kategorie:Unicode]]&lt;/div&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	</feed>