Autor Zpráva
Chodec
Profil
Mám stránky kódované v UTF 8 (v hlavičce je samozřejmě nastavené taky).

Když použiji funkci:
echo StrTr ("š", "š", "b");

tak mě to vypíše "b�" místo "b".

Nevíte jak to upravit, aby to fungovalo správně.
mvilda
Profil
Máš v PSPadu nastavené stejné kódování?
Chodec
Profil
jj, všechno v UTF 8.

Tady to je: http://www.off-limits.cz/_download/_test.php.txt
dragen
Profil *
Právě že je to v UTF-8. Budeš muset použít alternativní funkci StrTr pro UTF-8, zkus mb_strtr (nejsem si jistej jestli existuje)
fuckin
Profil *
kdyz to budes mit v win1250 tak to pude, problem je v tom ze v utf znaky s diakritikou sezerou 2 bajty ;)...jak uz bylo receno, pouzij mb_strtr
Chodec
Profil
Díky za rady, ale funkce mb_strtr neexistuje...
Chodec
Profil
Nakonec jsem si musel danou funkci trochu vylepšit sám a funguje to:

function Odstranit_Diakritiku ($retezec)
{
	$string1 = "ĚŠČŘŽÝÁÍÉÚŮÓŤĎĽŇŔÂĂÄĹĆÇĘËÎŃÔŐÖŮŰÜěščřžýáíéúůóťďľňŕâăäĺćçęëîńôőöůűü";
	$string2 = "ESCRZYAIEUUOTDLNAAAAAACEEINOOOUUUescrzyaieuuotdlnaaaaaaceeinooouuu";

	$pocet1 = StrLen ($string1);
	$pocet2 = StrLen ($string2);
	
	// V kódování UTF-8 zabírá znak s diakritikou 2 znaky
	if ($pocet1 == $pocet2 * 2):
		for ($ce = 0; $ce < $pocet2; $ce ++)
		{
			$ArrayTrans[$string1[$ce * 2].$string1[$ce * 2 + 1]] = $string2[$ce];
		}
	else:
		for ($ce = 0; $ce < $pocet2; $ce ++)
		{
			$ArrayTrans[$string1[$ce]] = $string2[$ce];
		}
	endif;

	return StrTr ($retezec, $ArrayTrans);
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0