<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT blog &#187; UTF-8</title>
	<atom:link href="http://szj.cz/tag/utf-8/feed/" rel="self" type="application/rss+xml" />
	<link>http://szj.cz</link>
	<description>internet, linux, novinky, programování</description>
	<lastBuildDate>Sat, 12 Sep 2015 11:14:32 +0000</lastBuildDate>
	<language>cs-CZ</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>UTF-8 a binární i hexadecimální reprezentace</title>
		<link>http://szj.cz/utf-8-a-binarni-i-hexadecimalni-reprezentace/</link>
		<comments>http://szj.cz/utf-8-a-binarni-i-hexadecimalni-reprezentace/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 16:36:49 +0000</pubDate>
		<dc:creator><![CDATA[fredomgc]]></dc:creator>
				<category><![CDATA[Ostatní]]></category>
		<category><![CDATA[kódování]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://szj.cz/?p=463</guid>
		<description><![CDATA[Následující text pokrývá problematiku převodu textu do binární podoby v rámci kódování UTF-8. Pakliže toužíte vědět, jak výsledná informace vypadá, jste na správné adrese. K převodu použiji krátké české slovo řepa. To se skládá ze čtyř znaků, což značí i počet nahlédnutí do Unicode tabulky. Zaměřím se přitom na hexadecimální formát. V případě ř se [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://szj.cz/wp-content/uploads/2012/10/utf-8-reprezentace.png"><img class="alignleft size-full wp-image-470" title="utf-8-reprezentace" src="http://szj.cz/wp-content/uploads/2012/10/utf-8-reprezentace.png" alt="UTF-8 a binární i hexadecimální reprezentace" width="128" height="128" /></a>Následující text pokrývá problematiku převodu textu do binární podoby v rámci kódování<strong> UTF-8</strong>. Pakliže toužíte vědět, jak výsledná informace vypadá, jste na správné adrese.</p>
<p>K převodu použiji krátké české slovo <strong>řepa</strong>. To se skládá ze čtyř znaků, což značí i počet nahlédnutí do <a href="http://cs.wikipedia.org/wiki/Unicode#Tabulka_.C4.8Desk.C3.BDch_znak.C5.AF_Unicode">Unicode tabulky</a>. Zaměřím se přitom na hexadecimální formát. V případě ř se dozvídám údaj 159<sub>16</sub>, jenž transformuji do binární podoby 1 0101 1001 <sub>2</sub>. Nyní je třeba určit, kolik bajtů potřebuji k uložení. Jak patrně víte, jeden bajt uchová 8 bitů. V mém případě však binární číslo čítá 9 bitů. O slovo se však hlásí i určitá režie, jenž pomáhá identifikovat počet bajtů dané sekvence. Ke specifikování volného prostoru poslouží níže zobrazená tabulka, kterou naleznete na <a href="http://cs.wikipedia.org/wiki/UTF-8#Zp.C5.AFsob_k.C3.B3dov.C3.A1n.C3.AD_znak.C5.AF">Wikipedii</a>. Ta říká, že manipulovat lze pouze s pozicemi označenými jako <strong>x</strong>. K uložení devíti bitů tedy použiji dva bajty.</p>
<p><a href="http://szj.cz/wp-content/uploads/2012/10/utf-8.png"><img class="aligncenter size-full wp-image-464" title="utf-8" src="http://szj.cz/wp-content/uploads/2012/10/utf-8.png" alt="UTF-8" width="655" height="202" /></a></p>
<p>Momentálně proto stojím před následujícím problémem. Disponuji přiděleným prostorem <strong>110xxxxx 10xxxxxx</strong> a chci co něj vložit <strong>1 0101 1001</strong>. Musím přitom dodržet, aby se vpravo objevil <a href="http://cs.wikipedia.org/wiki/Nejm%C3%A9n%C4%9B_v%C3%BDznamn%C3%BD_bit">nejméně významný bit</a>. Ten se nachází na poslední pozici čísla v binárním tvaru. Ve své podstatě udává, zda-li mám to odčinění s lichým nebo kladným údajem. Nejméně přitom dokáže ovlivnit hodnotu čísla, například v desítkové reprezentaci. Můj údaj <strong>1 01<span style="color: #ff0000;">01 1001</span></strong> tedy začínám vkládat z pravé strany a nejprve obohatím druhý bajt &#8211; <strong>110xxxxx 10<span style="color: #ff0000;">011001</span></strong>. Následně pokračuji vložením zbývající zeleně vyznačené části z&nbsp;<strong><span style="color: #00ff00;">1 01</span><span style="color: #ff0000;">01 1001</span></strong> do <strong>110xx<span style="color: #00ff00;">101</span> 10<span style="color: #ff0000;">011001</span></strong>. Jak nyní vidíte, mám dva volné bity, jenž nechci použít. Vložím proto nuly (<strong>110<span style="color: #0000ff;">00</span><span style="color: #00ff00;">101</span> 10<span style="color: #ff0000;">011001</span></strong>) a získávám binární reprezentaci znaku <strong>ř</strong> v kódování UTF-8. Pro přehlednost mohu výsledek převést do hexadecimální soustavy – <strong>C5 99</strong>.</p>
<p>Obdobným způsobem pokračuji i v případě znaků &#8218;<strong>e</strong>&#8218; &#8218;<strong>p</strong>&#8218; i &#8218;<strong>a</strong>&#8218;, jen si tentokrát vystačím s jediným bajtem.</p>
<p>Na závěr dostávám:</p>
<ul>
<li><strong>ř</strong> &#8211; C5 99<sub>16</sub> &#8211; 11000101 10011001<sub>2</sub></li>
<li><strong>e</strong> &#8211; 65<sub>16</sub> &#8211; 01100101<sub>2</sub></li>
<li><strong>p</strong> &#8211; 70<sub>16</sub> &#8211; 01110000<sub>2</sub></li>
<li><strong>a</strong> &#8211; 61<sub>16</sub> &#8211; 01100001<sub>2</sub></li>
</ul>
<p>K ověření lze využít <a href="http://mlha.cz/unicode/utf8.php">tento nástroj</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://szj.cz/utf-8-a-binarni-i-hexadecimalni-reprezentace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
