mich32
12-08-2008, 15:43
Witam,
Wiem, że o kodowaniu jest dużo wątków, ale nie znalazłem nic co mi pomogło. Mój problem wygląda następująco: mam stronę w joomli w kodowaniu utf8, baza danych jest w nazwa.pl na bazie mysql4 i kodowanie bazy danych wygląda tak:
Metoda porównywania napisów: latin2_general_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_unicode_ci
I wszystkie znaki wyświetlają się bezproblemowo i na stronie i w phpMyAdminie.
Teraz potrzebują stworzyć druga bazę danych nie kolidującą z bazą joomli. Więc stworzyłem sobie na nazwa.pl nową bazę tym razem mysql5 bo nie można już wybrać mysql4. Kodowanie stworzyłem identycznie jak w joomli:
Metoda porównywania napisów: latin2_general_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_unicode_ci
(oprócz tego próbowałem stworzyć jeszcze jedną bazę tym razem wszystko w kodowaniu utf8_general_ci ).
Problem jest taki że jak dodaję sobie przykładowe dane do tych dwóch testowych baz przez phpMyAdmina, to w phpMyAdminie wyświetlają się poprawnie polskie znaczki. A jeżeli próbuję je wyświetlić na stronie to już wyświetlają się krzaczki. Jeszcze chciałem dodać, że dane wyświetlam w komponenencie który sobie stworzyłem specjalnie do testowania wyświetlania poprawności danych. Kod w tym komponenecie wygląda tak:
defined( '_VALID_MOS' ) or die( 'Restricted access' );
echo 'Mój komponent';
DEFINE ('DB_USER', 'test');
DEFINE ('DB_PASSWORD', 'test123');
DEFINE ('DB_HOST', 'sql.stronka.pl');
DEFINE ('DB_NAME', 'test');
//@mysql_query("SET NAMES 'latin2'", $this->_resource);
//@mysql_query("SET NAMES 'utf-8'");
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem się połączyć: ' . mysql_error() );
@mysql_select_db (DB_NAME) OR die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );
$zapytanie = mysql_query ("SELECT * FROM test");
while ($w = mysql_fetch_row($zapytanie)) {
echo ' '.$w[0].', '.$w[1].', '.$w[4].', '.$w[5].'
';
}
mysql_close ($dbc);
?>Jeszcze chciałem dodać, że dodając ręcznie dane na stronie w taki sposób:
mysql_query("INSERT INTO test (one ,two) VALUES ($zm , 'ąźćśźńó') ") or die('Error, insert query failed');To dane na stronie się wyświetlają się poprawnie, ale w wyświetlając je w phpMyAdminie są krzaczki, czyli odwrotna sytuacja. Próbowałem użyć też takich funkcji:
@mysql_query("SET NAMES 'latin2'", $this->_resource);
@mysql_query("SET NAMES 'utf-8'");ale też nie pomogło. Czy ktoś wie w czym leży problem ?? Z góry dziękuję za pomoc.
Wiem, że o kodowaniu jest dużo wątków, ale nie znalazłem nic co mi pomogło. Mój problem wygląda następująco: mam stronę w joomli w kodowaniu utf8, baza danych jest w nazwa.pl na bazie mysql4 i kodowanie bazy danych wygląda tak:
Metoda porównywania napisów: latin2_general_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_unicode_ci
I wszystkie znaki wyświetlają się bezproblemowo i na stronie i w phpMyAdminie.
Teraz potrzebują stworzyć druga bazę danych nie kolidującą z bazą joomli. Więc stworzyłem sobie na nazwa.pl nową bazę tym razem mysql5 bo nie można już wybrać mysql4. Kodowanie stworzyłem identycznie jak w joomli:
Metoda porównywania napisów: latin2_general_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_unicode_ci
(oprócz tego próbowałem stworzyć jeszcze jedną bazę tym razem wszystko w kodowaniu utf8_general_ci ).
Problem jest taki że jak dodaję sobie przykładowe dane do tych dwóch testowych baz przez phpMyAdmina, to w phpMyAdminie wyświetlają się poprawnie polskie znaczki. A jeżeli próbuję je wyświetlić na stronie to już wyświetlają się krzaczki. Jeszcze chciałem dodać, że dane wyświetlam w komponenencie który sobie stworzyłem specjalnie do testowania wyświetlania poprawności danych. Kod w tym komponenecie wygląda tak:
defined( '_VALID_MOS' ) or die( 'Restricted access' );
echo 'Mój komponent';
DEFINE ('DB_USER', 'test');
DEFINE ('DB_PASSWORD', 'test123');
DEFINE ('DB_HOST', 'sql.stronka.pl');
DEFINE ('DB_NAME', 'test');
//@mysql_query("SET NAMES 'latin2'", $this->_resource);
//@mysql_query("SET NAMES 'utf-8'");
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem się połączyć: ' . mysql_error() );
@mysql_select_db (DB_NAME) OR die ('Nie mogłem wybrać bazy danych: ' . mysql_error() );
$zapytanie = mysql_query ("SELECT * FROM test");
while ($w = mysql_fetch_row($zapytanie)) {
echo ' '.$w[0].', '.$w[1].', '.$w[4].', '.$w[5].'
';
}
mysql_close ($dbc);
?>Jeszcze chciałem dodać, że dodając ręcznie dane na stronie w taki sposób:
mysql_query("INSERT INTO test (one ,two) VALUES ($zm , 'ąźćśźńó') ") or die('Error, insert query failed');To dane na stronie się wyświetlają się poprawnie, ale w wyświetlając je w phpMyAdminie są krzaczki, czyli odwrotna sytuacja. Próbowałem użyć też takich funkcji:
@mysql_query("SET NAMES 'latin2'", $this->_resource);
@mysql_query("SET NAMES 'utf-8'");ale też nie pomogło. Czy ktoś wie w czym leży problem ?? Z góry dziękuję za pomoc.