Autor Zpráva
Stanous
Profil
Zdravím všechny.

Jsem tak trochu začátečník v používání JQuery. Používám většinou jen kaskádové styly a pokud možno žádné skripty. Na stránkách mám umístěné navigační menu, ale z důvodu značného množství sekcí je krajně nepraktické z důvodu aktualizací a přidávání sekcí mít menu v každé stránce. Rád bych ho osamostatnil do jediného souboru a ten pak načítal do všech ostatních stránek. Chtěl jsem použít JQuery a AJAX syntaxi .load, ale nenačítá mi to české znaky ze souboru, i když zbytek obsahu je zobrazen správně Česky. Veškeré kódování mám v Češtině windows-1250 a když ho dle některých návodů změním na utf-8, přestane mi fungovat Čeština kompletně, nejen v divu z načítaného souboru. Prosím o radu, co s tím. Předem děkuji
Chamurappi
Profil
Reaguji na Stanoa:
Musíš u té stahované stránky posílat kódování v HTTP hlavičce Content-Type.
Stanous
Profil
Díky za radu. Vyřešil jsem to nakonec tím utf-8 kódováním. Nefungovalo mi to proto, že jsem měl v editoru nastavené kódování windows-1250 a pouze jsem přepsat právě jen Content-Type a charset na utf-8. Fyzicky byl tak dokument uložený s windows-1250. Až poté, co jsem ho uložil v jiném (správném - utf-8) kódování, začala fungovat čeština správně ve všem.
Chamurappi
Profil
Reaguji na Stanoa:
pouze jsem přepsat právě jen Content-Type a charset na utf-8
Bavíme se o skutečné hlavičce Content-Type nebo o elementu <meta http-equiv="Content-Type">? Já měl na mysli skutečnou hlavičku, <meta> se při načítání pomocí XMLHttpRequestu ignoruje.
Stačilo by nastavit typ „text/html; charset=windows-1250“ a nemusel bys převádět kódování.
Stanous
Profil
Aha, už tomu trochu rozumím, jsem vážně neprofík :-) ta skutečná hlavička je ve struktuře stránky kde? Asi to nebude mezi tagy <head> a </head>, že? počítám, že je jinde.
Stanous
Profil
Tak jsem našel ještě další dvě možné řešení a obě dvě nevyžadují převedení kódování, resp. stačí převést kódování pouze u dokumentu, který loaduju a nebo ho při jeho vytváření rovnou ukládat s utf-8 kódováním. Pak se i do stránek s nastaveným windows-1250 kódováním nahraje a interpretuje správně i s diakritikou. Takto se dají do stránky nahrávat jakékoliv texty a zdrojové soubory nemusí mít příponu .html (mohou mít jakoukoliv, zkoušel jsem .txt .tpl a další i vlastní, jde jen o obsah). Vše mi takto funguje a navíc tím mám redukovanou velikost souboru o několik kB. Druhým způsobem je vložit nad definici <!DOCTYPE tento tag: <?xml version="1.0" encoding="windows-1250"?>, soubor uložit v kódování windows-1250 (stejně jako webovou stránku) a dodržet ve zdrojáku strukturu HTML zápisu. Nevím, jestli jsem to vyřešil správně a validně a budu rád za jakoukoliv připomínku.
spex
Profil *
moznost je to take udelat takto:

 <script src="http://code.jquery.com/jquery-latest.js"></script>

 <script>
  $.ajaxSetup({
    'beforeSend' : function(xhr) {
        xhr.overrideMimeType('text/html; charset=windows-1250');
    }
  });

   $(document).ready(function(){
       $("#pripojeni").load("zdrojove.html");
     });

 </script>

 <div id="pripojeni"></div>

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Chamurappi
Profil
Reaguji na spexe:
xhr.overrideMimeType
Tuto metodu ale nepodporují všechny prohlížeče, takže je nepoužitelná.
c2ga3h
Profil *
mě to funguje s hlavičkou PHP.
<?php
header("Content-Type: text/html; charset=windows-1250");
?>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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