PDA

Zobacz pełną wersję : Krzaczki w treści w joomla IE



ADE
15-11-2007, 17:35
Witam,

Mam problem z polskimi znakami w treści strony.
Zainstalowaną mam joomla IE. (Przepraszam za podobny temat postu)

PHP działa na: Windows NT WIN1-PL 5.2 build 3790
Wersja MySQL: 5.0.45-log
Wersja PHP: 4.4.2
phpMyAdmin - 2.11.0
Wersja klienta MySQL: 4.1.15

Kod języka i kraju: Polish_Poland.1250 pl_PL.UTF-8 <- próbowałem
obie wersje i nic to nie dało.

MySql mam ustawiony tak:

System porównań dla połączenia MySQL: utf8_unicode_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
Metoda porównywania napisów: utf8_general_ci przestawiłem z: latin1_swedish_ci

Polskich znaków brakuje mi w menu oraz w treści (artykułach). Podaję link jakby ktoś miał moment by sprawdzić:

http://orient.u96.hosting365.pl/index.php?option=com_content&task=view&id=6&Itemid=2

Uprzejmie proszę o jakieś sugestie, bo trochę się pogubiłem


Serdecznie pozdrawiam

kobylinski
15-11-2007, 18:08
Czy metodę porównania przestawiłeś przed instalacją czy już po? Stronę instalowałeś od 0 czy przenosiłeś z innego hostingu? Czy w phpMyAdminie również widzisz tylko '?' zamiast polskich znaków?

ADE
15-11-2007, 18:38
1. Metodę porównywania napisów z: latin1_swedish_ci na: utf8_general_ci przestawiłem po tym jak postawiłem stronę, bo nie było polskich znaków.

2. W phpMyAdmin również mam znaki zapytania

3. Dostałem od wykonawcy gotowe pliki bazy i całą joomlę (bez/po instalce) czysto do przegrania na serwer.

W pliku index templatki chyba wszystko mam ok, cały front np. komunikaty pod login form,wstęp w odnośniku menu links (co mnie dziwi) ma polskie znaki.
http://orient.u96.hosting365.pl/index.php?option=com_weblinks&Itemid=23

kobylinski
15-11-2007, 18:43
Powinieneś był zmienić kodowanie przed instalacją. W jakim kodowaniu jest dump bazy danych?

Wg. mnie polskie znaczki posypały się już przy imporcie.

EDIT: Czy jesteś w stanie odczytać polskie znaki w pliku sql?

ADE
15-11-2007, 18:49
Nie wiem czy dobrze sprawdzam. Otworzyłem plik sql no i tam jest m.in. ta linijka:

ENGINE=MyISAM DEFAULT CHARSET=latin1

Czy o to chodzi czy coś jeszcze mam sprawdzić? I co mi pozostaje w takim przypadku?

Nie jestem w stanie odczytać polskich znaków w sql. Ale to nie pojawiło się po tym jak ja zaimportowałem bazę na serwer, tylko z tego co widzę np. w menu już przed importem na serwer porównując plik jaki mam na serwerze z tym jaki dostałem nie było polskiego np. pozycja menu Nowości -> Nowo?ci. Jedyną literką, którą mi widzi to "ó". Zamiast reszty polskich znaków mam "?"

kobylinski
15-11-2007, 18:55
Nie, zobacz na jakieś wpisy z tabeli #__content, jakie tam robaczki są, polskie czy jakieś chińskie ;).

Jeżeli masz edytor tekstu w którym możesz zmienić kodowanie odczytywanego tekstu, sprawdź w jakim kodowaniu pojawiają się prawidłowe polskie znaki.

Przy imporcie zrzutu bazy danych musisz określić w jakim kodowaniu zapisane są tam dane, jeśli tego nie zrobisz informacje o polskich znakach mogą zostać zatarte. Dlatego pojawiają się '?'.

Import robiłeś przez phpMyAdmina?

ADE
15-11-2007, 18:59
Import robiłem z phpMyAdmina, a w tabeli content w bazie mam krzaczory w postaci "?"

To co dokładnie mam teraz zrobić (nigdy nie miałem takiego problemu-więc tego wcześniej nie robiłem). Muszę coś z contentu ściągnąć i w jakimś edytorze html sprawdzić kodowanie? Dobrze myślę? A co potem?

kobylinski
15-11-2007, 19:02
Musisz sprawdzić nie w bazie danych tylko w pliku sql z danymi.

ADE
15-11-2007, 19:19
Zrobiłem tak (nie wiem czy dobrze). Zrobiłem sobie export (na twardziela). Zapisałem to jako unicode, utf8 i w plikach tak zapisanych nie mam polskich znaków. A w samym dumpie oryginału jest coś o utf8 i latin1.

kobylinski
15-11-2007, 19:28
Z exportu nic nie wywnioskujesz. W jakim kodowaniu działała strona wcześniej utf-8 czy iso-8859-2 ?

ADE
15-11-2007, 19:29
Ma ktoś może jakieś pomysły? Bardzo proszę o wszelkiego rodzaju sugestie.

ADE
15-11-2007, 19:36
Na serwerze wcześniej była joomla 1.0.12. (czysta zainstalowana), dostałem pliki sql i pliki joomla wraz z zainstalowaną już templatką od kodera. Kazał mi nadpisać pliki. Ponieważ nie mogłem nadpisać bazy danych to kazał mi wyczyścić tabele i wgrać tą jaką mi dał.

kobylinski
15-11-2007, 19:45
Spróbuj zaimportować jeszcze raz ten plik, w opcjach importu wybierając latin1.

ADE
18-11-2007, 16:47
Witam ponowie,

Ma ktoś jeszcze jakieś pomysły, bo nie mogę dojść do ładu. Zmieniałem już kodowanie xml w template z Iso na UTF, w global configuration, też dokonywałem zmian. Jak wspominałem przestawiłem metodę porównywania napisów w bazie z latin1 na unicode_general_ci. To też nie pomogło. Nadal mam krzaczki i w bazie i na stronie i nie bardzo wiem czego jeszcze sprobować.

Niewiele mi mówią wpisy do bazy, ale czy te linijki powinny tak wyglądać?:

varchar(200) character set latin1 NOT NULL default

ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3

Chodzi mi w szczególności o tą pierwszą z latin1, bo o drugie czytałem w pomocy joomla i chyba jest ok.

Pozdrawiam

zwiastun
19-11-2007, 03:43
A to pierwsze, niestety, nie jest. Musi być utf-8

ADE
19-11-2007, 15:10
Witam,

Czyli rozumiem, że muszę edytować ten plik i zmienić tą linijkę na:
varchar(200) character set utf-8 NOT NULL default?

Czy znaczenie ma wielkość liter podczas dokonywania zmian? I czy w utf8 ma
być myślnik czy nie?

Mam jeszcze takie pytanie: Czy ten plik sql trzeba edytować ręcznie czy est inny sposób na przestawienie tego?

ADE
19-11-2007, 16:48
Tak z ciekawości przeprowadziłem instalację joomla IE od podstaw na innym serwerze. Tuż po instalacji również są znaki zapytania zamiast polskich. Nie wiem o co tu chodzi? Baza danych była ustawiona wcześniej na utf8, metoda porównywania napisów po utworzeniu tabel bazy przez instalator jest na latin_swedish_ci. Więc znowu trzeba dla wszystkich tabel przestawiać.

W obu moich przypadkach to nie pomaga. Jak wejdę w strukturę tabel, pojedyncze wpisy są ustawione na latin1. Jeśli wybiorę operacje to niewiele już da się wskórać, bo tam z kolei pokazuje, że są ustawione na utf8_general_ci.

Nikt z Was nie miał takich problemów? Jak sobie z tym poradzić?

ADE
20-11-2007, 17:20
Witam,

Przestawiam wszystko ręcznie co jest w latin1 (w bazie danych). I mam takie pytanie czy trzeba przestawić dosłownie wszystko gdzie się taki wpis pojawia?

CREATE TABLE `jos_modules` (
`id` int(11) NOT NULL auto_increment,
`title` text character set latin1 NOT NULL,
`content` text character set latin1 NOT NULL,
`ordering` int(11) NOT NULL default '0',
`position` varchar(10) character set latin1 default NULL,
`checked_out` int(11) unsigned NOT NULL default '0',
`checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
`published` tinyint(1) NOT NULL default '0',
`module` varchar(50) character set latin1 default NULL,
`numnews` int(11) NOT NULL default '0',
`access` tinyint(3) unsigned NOT NULL default '0',
`showtitle` tinyint(3) unsigned NOT NULL default '1',
`params` text character set latin1 NOT NULL,
`iscore` tinyint(4) NOT NULL default '0',
`client_id` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `published` (`published`,`access`),
KEY `newsfeeds` (`module`,`published`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;


Kiedy przestawię wszystko i importuję bazę na serwer pojawia mi się taki błąd:

ERROR: Nieznany znak przestankowy @ 5437
STR: ://
SQL:
- Zrzut danych tabeli `jos_content`

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'How To Apply These Terms To Your Program'</a> and the <a href="http://www.gnu.or' at line 6

Nie wiem co zrobić w tym przypadku, bo import wykłada się na jos_component. Wcześniejsze tabele wgrywają się dobrze.

Pozdrawiam

ADE
21-11-2007, 12:54
Kombinuję ale nie wiem jak sobie z tym poradzić. Jest jakaś nadzieja? Co mi polecacie? Da się z tym coś zrobić?

ADE
22-11-2007, 15:15
Spoko, wszystko działa jak należy. Jakby ktoś miał podobne problemy tzn. brak polskiego w JIE 1.0.13. to:

1. Trzeba ustawić w indexie templatki xml na:
<?xml version="1.0" encoding="utf-8"?>

2. W panelu w global configuration ustawić: pl_PL.UTF-8
3. Baza danych:
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: UTF-8 Unicode (utf8)
Metoda porównywania napisów: utf8_general_ci (dokładnie dla tabel i rekordów)

Ameryki nie odkryłem, wszystko jest w instrukcji instalacji.

Pozdrawiam serdecznie