Autor | Zpráva | ||
---|---|---|---|
Chodec Profil |
#1 · Zasláno: 14. 3. 2009, 19:17:26
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 |
#2 · Zasláno: 14. 3. 2009, 19:21:01
Máš v PSPadu nastavené stejné kódování?
|
||
Chodec Profil |
#3 · Zasláno: 14. 3. 2009, 19:22:32 · Upravil/a: Chodec
|
||
dragen Profil * |
#4 · Zasláno: 14. 3. 2009, 19:59:44
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 * |
#5 · Zasláno: 14. 3. 2009, 21:10:11
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 |
#6 · Zasláno: 14. 3. 2009, 21:12:14
Díky za rady, ale funkce mb_strtr neexistuje...
|
||
Chodec Profil |
#7 · Zasláno: 15. 3. 2009, 09:02:12
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); } |
||
Časová prodleva: 15 let
|
0