| Author |
Message |
Rogo
~user

Joined: 27.02.2006
Posts: 15
Location: Świdnica
Status: Offline
|
Posted: 11 Mar 2006 15:00:02
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1 |
Sorki za męczenie tego tematu ale nie bardzo wiem jak zastosowac się do tego rozwiązania z tej stronki http://phpnuke.org.pl/modules.php?name=FAQ&id=634
wykonalem w phpMyAdminie zapytanie
SHOW VARIABLES LIKE "character_set%";
otrzymałem
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_results utf8
character_set_server latin2
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
no i teraz gdzie co mam zmienic żeby na stronce nie bylo krzaków
na poprzednim serwerku mialem
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
i wszystko dzialalo cacy a tutaj krzakologia jak sie patrzy, i probowalem baze exportowac na kilka sposobow i nic, o wpisach tez moge zapomniec co bym nie dodal czy newsa czy zmienil jakas nazwe to zamiast polskich jest krzak
nuke 7.7
|
|
|
|
|
|
|
 |
|
|
 |
chickens11
~user

Joined: 9.12.2005
Posts: 123
Helps: 6
Warrnings: 1
Location: Byczyna
Status: Offline
|
Posted: 13 Mar 2006 09:23:43
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.10) Gecko/20050717 Firefox/1.0.6 |
| Code: |
II. Krok drugi:
1) Jeżeli nasze tabele mają inny zestaw znaków niż domyślny, który odczytaliśmy z character_set_database, to musimy:
- wymusić łączenie się z takim charsetem, jaki ma tablica, dodając po połączeniu polecenie "SET NAMES 'latin1'", gdzie 'latin1', to zestaw znaków z naszych tabelach.
Jak to zrobić?
otwieramy plik includes/sql_layer.php
Szukamy
Kod:
function sql_connect($host, $user, $password, $db)
{
global $dbtype;
switch ($dbtype) {
case "MySQL":
$dbi=@mysql_connect($host, $user, $password);
mysql_select_db($db);
i dodajemy po:
Kod:
mysql_query("set names 'latin1'",$dbi);
Otwórz plik db/mysql.php
Znajdź
Kod:
mysql_connect($this->server, $this->user, $this->password);
}
if($this->db_connect_id)
{
if($database != "")
{
$this->dbname = $database;
$dbselect = @mysql_select_db($this->dbname);
dodaj po:
Kod:
mysql_query("set names 'latin1'",$this->db_connect_id);
Pamiętaj, że musisz zamienić latin1, na zestaw znaków, któy mają twoje tabele
- spróbować zmienić kodowanie w tablicy, tak aby serwer nie robił "automatycznej konwersji w locie".
Zmiana kodowania w tablicy - WAŻNE!
Ponieważ nasze znaki są w tabeli jako strona kodowa domyslnej tablicy znaków w naszej bazie danych, a tabela uważa, że są one w latin1, NIE WOLNO robić zwykłej konwersji charsetu na danym polu (przez ALTER TABLE - zmiana właściwości pola)!
Trzeba z każdym polem typu text lub varchar zrobić tak, jak to niżej napisali:
Kod:
If you have a column in one character set (like latin1) but the stored values actually use some other, incompatible character set (like utf8). In this case, you have to do the following for each such column:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
a w naszym przypadku, zamiast uft8, będzie domyślny zestaw znaków naszej bazy danych
Kod:
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET latin2;
dla pola VARCHAR będzie to:
Kod:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 VARCHAR(255) CHARACTER SET latin2;
Uwaga: 'latin2' musisz zmienic na swoją domyślną tablicę znaków w twoim MySQL
III. Krok trzeci:
Jeśli nasz przypadek to:
1) baza ma domyślny zestaw znaków, np. 'latin2'
2) PHP-Nuke łączy się za pomocą innego zestawu znaków, np. 'latin1' , to:
otwieramy plik includes/sql_layer.php
Szukamy
Kod:
function sql_connect($host, $user, $password, $db)
{
global $dbtype;
switch ($dbtype) {
case "MySQL":
$dbi=@mysql_connect($host, $user, $password);
mysql_select_db($db);
i dodajemy po:
Kod:
mysql_query("set names 'latin2'",$dbi);
Otwórz plik db/mysql.php
Znajdź
Kod:
mysql_connect($this->server, $this->user, $this->password);
}
if($this->db_connect_id)
{
if($database != "")
{
$this->dbname = $database;
$dbselect = @mysql_select_db($this->dbname);
dodaj po:
Kod:
mysql_query("set names 'latin2'",$this->db_connect_id);
gdzie musimy 'latin2' zmienić na zestaw znaków naszej bazy dnaych
Przy opracowywaniu wykorzystałem http://www.zhr.pl/info/1657
UPDATE:
Alternatywną metoda działającą w niektórych przypadkach (zwłaszcza opisanej powyżej drugiej sytuacji) to konwersja standardu kodowania w pliku będącym zrzutem bazy danych.
Otóż przed wykonaniem zapytań z pliku sql należy zmienić kodowanie w tym pliku na zgodne z kodowaniem jaki poznaliśmy na początku tego FAQ. Dopiero potem załadować plik do bazy danych. Do konwersji standardu kodowania polecam darmowy, polski program o nazwie GżegżółkaXP. Najczęściej konwersja powinna być wykonana na któryś z tych 3 standardów:
- IBM CP852 (Europa Środkowa)
- ISO 8859-2 (Europa Środkowa)
- Windows 1250 (Europa Środkowa)
update by Suchy
*Jaszczur |
Poczytaj
|
|
|
_________________ Jeśli udało mi się Tobie pomóc, możesz się odwdzięczyć
odwiedzając moją stronę - www.eduklasa.ovh.org! |
|
|
|
 |
mtx
#tłumacz

Joined: 9.11.2005
Posts: 122
Location: K-ce
Status: Offline
|
Posted: 15 Mar 2006 14:49:56
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; 354ACC22-4D77-5B09-ACF5-201191686861; .NET CLR 1. |
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 2 Jun 2006 09:48:40
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) |
Witam. Testuje serwis na new serwerze i mam z tym podobny problem.
Po zapytaniu:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin2
character_set_results utf8
character_set_server latin2
character_set_system utf8
character_sets_dir /usr/local/mysql-standard-4.1.10-pc-linux-gnu-i686...
Więc zmieniam w kodzie:
plik includes/sql_layer.php
case "MySQL":
$dbi=@mysql_connect($host, $user, $password);
mysql_select_db($db);
mysql_query("set names 'latin2'",$dbi);
return $dbi;
break;;
plik db/mysql.php
$this->dbname = $database;
$dbselect = @mysql_select_db($this->dbname);
mysql_query("set names 'latin2'",$this->db_connect_id);
if(!$dbselect)
{
@mysql_close($this->db_connect_id);
$this->db_connect_id = $dbselect;
I bez zmian, albo zrobiłem gdzies błąd, albo trzeba zmienic kodowanie tablicy.
Niestety nie mam pojęcia jak i gdzie.
Można by tak łopatologicznie
Proszę o pomoc...
P.S. Dodam, że gdy w jednym z bloków zmieniłem ręcznie ? na prawidłowe znaki działa bez problemu. Można i tak, ale przy takiej ilości danych zajęłoby mi to diabli wiedzą ile a jakies lekarstwo musi być
|
|
|
|
|
|
|
 |
srwsio
*mod

Joined: 4.05.2006
Posts: 514
Helps: 34
Location: Olsztyn
Status: Offline
|
Posted: 2 Jun 2006 13:29:51
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90) |
| kufel74 wrote: |
| P.S. Dodam, że gdy w jednym z bloków zmieniłem ręcznie ? na prawidłowe znaki działa bez problemu. Można i tak, ale przy takiej ilości danych zajęłoby mi to diabli wiedzą ile a jakies lekarstwo musi być |
Grzegżółka Twoim Przyjacielem
ps a gdzie ją znaleźć ???
www.GOOGLE.pl
|
|
|
_________________ SZUKAJ <--BEST FRIENDS--> GOOGLE
nie udzielam porad na gg, e-mail - piszesz na własne ryzyko
25% wykonania typera |
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 2 Jun 2006 14:03:35
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) |
Nie pytałem o w/w tylko:
1. Czy nie mam błedu w kodzie
2. Jak wykonać zmianę kodowania w tablicy
|
|
|
|
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 20 Feb 2007 19:37:37
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) |
Powrót do tematu więc niezakładałem nowego topika.
Otóż:
character_set_client utf8
character_set_connection latin2
character_set_database latin2
character_set_results utf8
character_set_server latin2
character_set_system utf8
ale patrząc na tabele w bazie mam w kazdej jednej:
Collation - latin1_swedish_ci natomiast na dole pod tabelami w podsumowaniu: latin2_general_ci
Dlaczego tak i który krok zastosować i co wpisać latin1, latin2 czy utf
|
|
|
|
|
|
|
 |
Jaszczur
*mod

Joined: 21.12.2004
Posts: 1156
Helps: 83
Location: Racibórz/Katowice
Status: Offline
|
Posted: 20 Feb 2007 19:49:49
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 |
character_set_database latin2 - tak są zapisane informacje w bazie
character_set_client utf8 - klient przerabia je na utf8
co z tego? BŁĄD!!!
musisz narzucić kodowanie latin2, więc takie wpisujesz
|
|
|
_________________ Nie udzielam porad via GG,PW, mail etc - o wszystko pytać na forum
www.tobiasz.org | www.phpnuke.com.pl |
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 20 Feb 2007 21:13:54
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) |
Niestety nic nie pomogło. Jaszczur lub ktoś kto wie o co chodzi i może pomóc jakbyście znaleźli chwilkę i rzucili okiem. Bardzo mi zależy.
Muszę zmienić hosting bo poprzedni dostawca wywinął mi numer a nie mam pojęcia co jest. Kombinowałem na różne sposoby i nic.
Na poprzednim serwerze działało wszystko ok, ale niestety trzeba się było wynieść. Założyłem też konto testowe w home.pl wszystkie charsety są na latin2 i występuje to samo.
http://www.mws.netstrefa.pl i
http://www.mws.home.plbędę wdzięczny.
NUKE 7.5
Z góry dzięki
|
|
|
|
|
|
|
 |
Jaszczur
*mod

Joined: 21.12.2004
Posts: 1156
Helps: 83
Location: Racibórz/Katowice
Status: Offline
|
Posted: 22 Feb 2007 15:18:30
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 |
|
|
|
 |
srwsio
*mod

Joined: 4.05.2006
Posts: 514
Helps: 34
Location: Olsztyn
Status: Offline
|
Posted: 22 Feb 2007 16:27:03
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) |
DOpiszę tylko o wyczyszczeniu cookies i plików tymczasowych, gdyz jak wiadomo przeglądarka czyta najpierw to co na kompie a potem sprawdza czy isnieje nowsza wersja
|
|
|
_________________ SZUKAJ <--BEST FRIENDS--> GOOGLE
nie udzielam porad na gg, e-mail - piszesz na własne ryzyko
25% wykonania typera |
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 23 Feb 2007 09:13:50
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) |
Tutaj tak ponieważ musiałem uruchomić serwis i część rzeczy przynajmniej te dostępne ze strony głównej zmieniłem ręcznie.
Próbowałem wszystkiego co jest dostępne na forum o plikach językowych, niestety pomogło tylko ręczne "wywalenie" krzaków.
I jeszcze nie wszystko gotowe w pozostałych podstronach serwisu.
Natomiast www.mws.home.pl sprawa wygląda nadal bez zmian. tu nic nie grzebałem
|
|
|
|
|
|
|
 |
Jaszczur
*mod

Joined: 21.12.2004
Posts: 1156
Helps: 83
Location: Racibórz/Katowice
Status: Offline
|
Posted: 23 Feb 2007 09:54:16
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1 |
| kufel74 wrote: |
| Natomiast www.mws.home.pl sprawa wygląda nadal bez zmian. tu nic nie grzebałem |
Bo prawdopodobnie odtwarzałeś z kopii bazy danych serwisu
http://www.mws.netstrefa.pl/, a tam było inne kodowanie w bazie danych i masz dziwne znaczki zmiast plliterek, ale nie znaki zapytanie
|
|
|
_________________ Nie udzielam porad via GG,PW, mail etc - o wszystko pytać na forum
www.tobiasz.org | www.phpnuke.com.pl |
|
|
|
 |
kufel74
~user

Joined: 8.09.2005
Posts: 23
Location: Mysłowice
Status: Offline
|
Posted: 23 Feb 2007 12:03:17
|
|
User browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) |
Było tak że na obydwa te serwisy odtwarzałem ze starego serwera (i365.pl).
No nie znaki zapytania. Nie chciałem poprostu zakładać nowego tematu to dopisałem tutaj. Może błędnie sorx.
Tyle, ze nadal nie mam pomysłu czemu te znaczki sie robią.
|
|
|
|
|
|
|
 |
p-maz
*mod

Joined: 23.12.2004
Posts: 1129
Helps: 120
Location: Wrocław
Status: Offline
|
Posted: 23 Feb 2007 17:47:36
|
|
User browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9 |
Ogólnie jeśli chodzi o polskie litery to polecam Gżegżółkę i na spokojnie konwerujesz baze...
Ja ostatnio robiłem tak z bazą 24mb i pięknie poszło
|
|
|
_________________ Nie udzielam porad GG, PW.
http://e-maz.net - modyfikacja/tworzenie stron |
|
|
|
 |
|
|