Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SMARTY]Kodowanie
Forum PHP.pl > Forum > PHP
indexx
Mam problem z kodowaniem polskich znaków, problem polega na tym, że na stronie wszystko wyświetla się dobrze(polskie znaki) ale jest problem z plikikem includowanym:

Mam plik kod.php
  1. <?
  2. $stala = 'śćźżą';?>



Później w index.php

  1. $smarty->assign('stala_do_tpl', $stala);



A w pliku szablonu them.tpl

  1. Jakiś tekst...{$stala_do_tpl}...jakiś tekst



Co zrobić, żeby wyraz z pliku kod.php - śćźżą wyświetlił się poprawnie?

Może źle includuję stałe do pliku tpl, potrzebuję aby pewne stałe znajdowały się w osobnym pliku ale nie wiem w jaki inny sposób mógł bym to zrobić.
mbaszczewski
Czy masz pewność, że oba pliki posiadają takie samo kodowanie?
indexx
Kodowanie plików mam iso-8859-2 i jeśli wpiszę w pliku kod.php ¶ćĽż± to
na stronie wyświetli się poprawnie, kombinowałem z różnymi kodowaniami
ale nic nie pomaga.
Max Damage
Ustaw sobie kodowania na utf-8 , a jaki piszesz w adobe dreamweaver to sprawdź jeszcze ustawienie dla plików: modify -> page_properties ->titile/encoding: encoding: utf-8.
indexx
Próbowałem już w utf-8, częściowy efekt przyniosło ustawienie kodowania strony na windows-1250, ale teraz przy zapytaniu z bazy wyświetla mi krzaki, próbowałem zmieniać kodowanie bazy, nic nie pomogło, dodawałem również
  1. query("SET NAMES 'latin2'");

i inne np utf8


Nic nie pomaga, nie wiem, gdzie tkwi błąd.

Wydaje mi się, że plik index.php źle przekazuje dane, przy kodowaniu iso-8859-2
pobiera dane z bazy poprawnie, ale pozostałe dane(np wpisane w pliku tpl)
wyświetla z krzakami
. Przy kodowaniu utf-8 wszędzie wyświetla krzaki.
Max Damage
Wszystkie tabele i pola w bazie danych też musisz ustawić na utf8_unicode_ci.
Przykładowe połączenie:
  1. $pdo=new PDO('mysql:host=localhost;dbname=baza','root','haslo') or die("blad");
  2. $pdo -> query ('SET NAMES utf8');
  3. $pdo -> query ('SET CHARACTER_SET utf8_unicode_ci');

Oczywiście wiesz że to co wpisane do bazy trzeba poprawić.
indexx
Cytat(Max Damage @ 3.12.2009, 15:14:00 ) *
Oczywiście wiesz że to co wpisane do bazy trzeba poprawić.


Dzięki ale już rozwiązałem to w inny sposób, otóż dane, które chcę includować będę najpierw zapisywał do bazy poprzez formularz, a później pobierał i wyświetlał na stronie. Działa bez problemu.

A poprawianie bazy nie wchodzi w grę ponad 50 000 rekordów ;|

Dzięki i pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.