Autor Zpráva
T3RMiX
Profil
Snažím se generovat RTF soubor dle tohoto návodu http://suplik.petnik.cz/priklady/vytvoreni-rtf-navod-pismo-odstavec.ht ml ale narazil jsem na problém s češtinou. Honza Hučín tam píše o hexa kódu znaku, zkoušel jsem si ho vracet přes bin2hex(), ale nevim co to vrací za číslo, ale určitě to není hexa znaku. Nevíte někdo jak dostat ze znaku hexa kód pomocí PHP?! díky
Kajman
Profil *
dechex(ord('a'))
T3RMiX
Profil
IMHO to není to co potřebuji např. z "á" to vrátí C3 a hexa malého á je E1...
Kajman
Profil *
Tak jsem to zkusil. Mně to vrací e1. Pokud tam strkáš unicode, tak ord nelze použít a ani ten kód nemůže být E1.
T3RMiX
Profil
Bohužel tam Unicode strkám, prozatim jsem si na to napsal fci
	$a = array("á");

$b = array("\'E1");
$final = str_replace($a, $b, $string);
return $final;

samozřejmně z celou diakritikou, leč se mi to nezdá moc efektivní...
llook
Profil
Snad v žádném Unicode kódování nemůže být "á" jeden byte. Třeba v UTF-8 má "á" dva byty: c3a1. A funkce bin2hex mi tuhle hodnotu vrací.

Ord se na utf-8 použít nedá, protože ten vrátí právě velikost prvního bytu (počítá se single-byte kódováním, jako spousta funkcí v PHP).
printf
Profil
jestli potřebuješ místo 'á' kód pro krátké 'a', tak se to dá předtím ztransformovat s použitím pole a funkce strtr, kdy se odstraní všechna diakritika a pak ord.

Nebo přímo to s tím polem:
$ords=array("a" => "\'E1", ..... "á" => "\'E1" ...);
případně:
$ords=array("a" => 225, ..... "á" => 225 ...);
proč by to nebylo efektivní?
Toto téma je uzamčeno. Odpověď nelze zaslat.