Problém s diakritikou při použití informací z XML souboru – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém s diakritikou při použití informací z XML souboru – PHP – Fórum – Programujte.comProblém s diakritikou při použití informací z XML souboru – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
unpix0
Duch
30. 7. 2016   #1
-
0
-

Zdravím,

nejprve problém stručně: píšu pomocí PHP webové stránky, které všechny mají společné menu (jak to často bývá). Celé toto menu se načítá z XML souboru. Problém je v tom, že text (v češtině) položek toho menu je "zmršený" - namísto znaků s diakritikou to píše něco jiného - v jiném kódování.

Nyní podrobněji: Mám soubor "index.php" ve kterém je kostra stránek. V hlavičce jasně píšu, že kódování má být WINDOWS-1250, čímž myslím, že ve zmiňovaném souboru je v hlavičce napsáno toto:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

Dále: V tom samém souboru ("index.php") mám funkci, která načítá pomocí SimpleXML informace ze souboru "menu.xml", který vypadá zhruba takto:

<?xml version="1.0" encoding="WINDOWS-1250"?>
<menu id="root">
    <item text="Úvod" id="uvod" url="soubory/uvod.html" />
    <item text="O mně" id="denni"  url="" />

...

přičemž jsem se v editoru (používám Notepad++) přesvědčil, že soubor je opravdu v Windows-1250.

Myslel jsem si tedy, že když je vše ve Windows-1250, neměl by být nikde problém. Ještě mě napadá, že by mohl být v nastavení PHP-serveru (používám EasyPHP), ale zkoušel jsem ty webové stránky i jinde (nevím, co mají za PHP-server) a problém byl stejný - diakritika je špatná pouze v textu, který je načítán z XML souboru.

Nahlásit jako SPAM
IP: 188.175.66.–
Reklama
Reklama
Kit+11
Guru
30. 7. 2016   #2
-
+1
-
Zajímavé

#1 unpix
Při práci s XML je vše konverováno do Unicode. Ideální bude, když v souboru index.php budeš mít charset=UTF-8. Menu se pak zobrazí korektně.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
unpix0
Duch
31. 7. 2016   #3
-
0
-

#2 Kit
Ano, díky, problém je vyřešen. Přesto jsem potřeboval mít vše ve Windows-1250. Řešení jsem našel v knize Jiřího Koska - "PHP a XML" - v kapitole 3, která je volně stažitelná:

http://www.kosek.cz/knihy/phpxml/php5xml-unicode.pdf

- s využitím funkce iconv()

Ještě jednou díky

Nahlásit jako SPAM
IP: 188.175.66.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý