mb_internal_encoding - Český PHP manuál

PHP Manuál Textové řetězce mb_internal_encoding - Český PHP manuál

Pro práci s řetězci je důležité, aby PHP znalo naše kódování. Většinou (vlastně vždy) budeme používat UTF8. Výhoda Unicode (tedy UTF kódování) je, že se nemusíme starat o to, zda nám tam někdo vkládá češtinu, azbuku nebo něco jiného. Vždy se vše zobrazí správně. Daní za to je, že speciální znaky (např. ty s diakritikou) jsou v textovém řetězci uloženy jako více znaků. Nezabírají tedy 1 byte jako ostatní písmena, ale jsou to vlastně třeba 2 písmena zasebou (můžeme si to představit jako háček a c pro znak č). Hovoříme o tzv. multi-byte znacích. Aby nám PHP neřeklo, že řetězec "člověk" má znaků 8, musíme UTF kódování nastavit, to provedeme funkcí:

mb_internal_en­coding

Funkci umístíme na začátek index.php a do všech dalších skriptů, které se do indexu nevkládají.

Parametry

Parametrem je požadované kódování.

Návratová hodnota

Funkce vrací true pokud se podařilo kódování nastavit, jinak false.

Příklad

Volání funkce je následující:

<?php
mb_internal_encoding("UTF-8");

 

  Aktivity (1)

Manuál pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Miniatura
Všechny články v sekci
Textové řetězce - Český PHP manuál

 

 

Komentáře

Avatar
Shigei
Člen
Avatar
Shigei:

Když mám funkci ucwords() a v ní uložené jméno např. šimon rácz, nezobrazí se Šimon Rácz, ale šimon Rácz. To znamená, že ucwords() mi nebere diakritiku. Nevíte jak to mám spravit?

Odpovědět 7.11.2012 19:37
V těch nejtěžších chvílích se otoč za sluncem a všechny stíny padnou za tebe.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Shigei
David Čápka:

To je proto, že většina PHP funkcí bez prefixu mb_ neumí multibyte kódování (UTF8). Proto si na to budeš muset napsat vlastní funkci pomocí fce mb_strtoupper

Odpovědět 8.11.2012 7:20
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na Shigei
Drahomír Hanák:

Můžeš použít mb_convert_case (http://www.php.net/…ert-case.php)

<?php
echo mb_convert_case('šimon rácz', MB_CASE_TITLE, "UTF-8");
 
Odpovědět 8.11.2012 9:38
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Drahomír Hanák
David Čápka:

Tu jsem přehlédl, doplním to sem :)

Odpovědět 8.11.2012 9:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Je na zvážení, zda tuto funkci je vhodné umístit do skriptu PHP, šablony XSLT nebo do CSS. Všechny 3 varianty jsou možné, každá z nich má mírně odlišné uplatnění.

Odpovědět 8.11.2012 19:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.