
Místo mezer mám na webu kostičky
Ahojky,
po změně kódování z windows1250 na UTF8 se mi vše daří předělat, ale nemohu přijít na to, jak udělat mezery. Respektive tam, kde byly pevné mezery, se mi stále zobrazují kostičky.
Nepomohlo ani to, když sem entity vyndal a vložil obyčejné mezery.
Nevíte někdo, co s tím?
Odkud čteš text?
Podívej se na kódování zdrojového souboru, v němž se text nachází (.PHP nebo .txt ?).
Načítám to z databáze, je to redakční systém, který je celý ve windows1250. Někdo přehodil databázi na UTF8, že bude cosi děsně rychlé a budou fungovat nějaké funkce (jaké netuším).
Změnil jsem tedy kódování v hlavičce i formát textu na UTF8, který jsem v administraci RS vložil znovu. Všechno se udělalo, jen ty pevné mezery ne.
Nesprznilo se to uz v te databazi pri prevodu na utf?
Ano, sprznilo. I všechno v administracích a všude.
Tak jestli je sprzneny zdroj, tak by snad melo stacit to projet nejaky najit/nahradit scriptem.
Napadá mi jedno blbé řešení, kterým se vyřeší následek, nikoli příčina:
načti si ten text z databáze do řetězce a podívej se na číslo znaku, který je tam místo mezery - zkus ord(mb_substr($retezec,$poradi,1,'UTF-8')) .
Ve zdroji ten znak zkus vyměnit: str_replace(chr($cislo_znaku)," ",$retezec) - z hlavy nevím, jak to bude na UTF-8 fungovat .
Nejlepší by ale bylo prohlédnout a případně spravit databázi (pokud k ní máš přístup).
Ten RS není má práce (je to RS2). Celý ten článek (jeho obsah) jsem smazal, vyrobil nový kód v PSPadu s formátováním textu v UTF8 a uložil v redakčním systému. Nejde mi do hlavy, že to v jiném kódování nebere entity.
Napadlo mě teď, že to zkusím vložit jako normální text (ne kód). Ale nemám teď čas to zkusit, pádím na autobus.
Databázi právě kvůli čemusi přehodili do jiného kódování a podělalo se komplet asi 6 webů, které na ní jedou.