Polskie znaki w bazie MySQL
Polskie znaki w bazie MySQL
Jak ustawić polskie znaki w bazie MySQL? gdy wpisuję polskie znaki to pojawiają się krzaczki `?`.
Proszę o pomoc
Proszę o pomoc
Re: Polskie znaki w bazie MySQL
Jeśli używasz kodowania UTF-8 do sprawa jest prosta, po połączeniu z bazą dajesz dwa zapytania:
jeśli ISO-8859-2 to nie wiem, czy się da...
Kod: Zaznacz cały
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
Re: Polskie znaki w bazie MySQL
zrobiłem tak i nie działa:
wyświetla się:
Kod: Zaznacz cały
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
mysql_query('select * from test limit 0, 5');
EDIT: miałem złe kodowanie.... ustawiłem na utf8 i działają znaki z MySQL ale polskie znaki w pliku to wyświetlają się jako krzaczki......ĹźÄ�ĹşÄ�Ĺ�Ĺ�Ăł
Re: Polskie znaki w bazie MySQL
mam problem, i nie mogę go rozwiązać...
w bazie zamiast polskich znaków mam znaki zapytania
próbowałem kilka sposobów... przez PMA... przez skrypt php... dupa
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: uf8_polish_ci
Do pisania skryptów używam Zend Studio z ustawionym kodowanie utf-8
kod skryptu:
Proszę o jakieś rady lub sugestie...
w bazie zamiast polskich znaków mam znaki zapytania
próbowałem kilka sposobów... przez PMA... przez skrypt php... dupa
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: uf8_polish_ci
Do pisania skryptów używam Zend Studio z ustawionym kodowanie utf-8
kod skryptu:
Kod: Zaznacz cały
<?php
header('Content-type: text/html; charset=utf-8');
require_once('connection.inc');
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
$result=mysql_query("INSERT INTO kategorie (nazwa_kat) VALUES
('Monitory LCD'),('Karty graficzne'),('Płyty główne'),('Procesory'),
('Pamięć RAM'),('Notebooki'),('Dyski twarde'),('Pamięć flash'),('Zasilacze'),('Drukarki');");
if (!$result) {
die("query failed: " . msql_error());
}
?>
Re: Polskie znaki w bazie MySQL
PHP:
header('Content-type: text/html; charset=utf-8');
mysql_query("SET CHARSET utf8", zmienna_polaczenia);
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_bin'", zmienna_polaczenia);
PMA:
System porównań dla połączenia MySQL: utf8_unicode_ci
Metoda porównywania napisów: utf8_bin
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Pliki zapisujesz w kodowaniu utf-8
Dane zapisujesz i odczytujesz wyłącznie przez php/html, pma ma jakieś problemy z kodowaniem, mogą wystąpić jakieś dziwne znaki, dlatego nie korzystaj z pma do zapisywania danych.
header('Content-type: text/html; charset=utf-8');
mysql_query("SET CHARSET utf8", zmienna_polaczenia);
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_bin'", zmienna_polaczenia);
PMA:
System porównań dla połączenia MySQL: utf8_unicode_ci
Metoda porównywania napisów: utf8_bin
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Pliki zapisujesz w kodowaniu utf-8
Dane zapisujesz i odczytujesz wyłącznie przez php/html, pma ma jakieś problemy z kodowaniem, mogą wystąpić jakieś dziwne znaki, dlatego nie korzystaj z pma do zapisywania danych.
Re: Polskie znaki w bazie MySQL
dobra, zrobiłem zgodnie z zaleceniami i zamiast znaków zapytania pojawiły się takie rzeczy:
Monitory LCD
Karty graficzne
Płyty główne
Procesory
Pamięć RAM
Notebooki
Dyski twarde
Pamięć flash
Zasilacze
Drukarki
Monitory LCD
Karty graficzne
Płyty główne
Procesory
Pamięć RAM
Notebooki
Dyski twarde
Pamięć flash
Zasilacze
Drukarki
myślałem, że szlak mnie strzeli bo znowu nie działa... ale przez php odczytałem wyniki z bazy i wszystko jest ok polskie znaki wyświetlają się, mogłem sprawdzić czy tak samo było z tymi znakami zapytania... no ale nic
a! i jeszcze jedna sprawa, ale tez nie sprawdziłem czy to miało wpływ... otóż standardowo po utworzeniu tabeli ustawia się Metoda porównywania napisów: latin1_swedish_ci,
po zmianie na utf8_bin niby dalej to pozostaje, ale gdy klikniemy Details to tam już jest ok, dziwne...
jeszcze mam jedną prośbę... czy to, że te znaki zapisują się tak jak wyżej nie będzie miało wpływu na pracę bazy danych?
Będzie kilka tabel, dużo operacji na nich, łączenia itd
Czy wszystko będzie ok?
Monitory LCD
Karty graficzne
Płyty główne
Procesory
Pamięć RAM
Notebooki
Dyski twarde
Pamięć flash
Zasilacze
Drukarki
Monitory LCD
Karty graficzne
Płyty główne
Procesory
Pamięć RAM
Notebooki
Dyski twarde
Pamięć flash
Zasilacze
Drukarki
myślałem, że szlak mnie strzeli bo znowu nie działa... ale przez php odczytałem wyniki z bazy i wszystko jest ok polskie znaki wyświetlają się, mogłem sprawdzić czy tak samo było z tymi znakami zapytania... no ale nic
a! i jeszcze jedna sprawa, ale tez nie sprawdziłem czy to miało wpływ... otóż standardowo po utworzeniu tabeli ustawia się Metoda porównywania napisów: latin1_swedish_ci,
po zmianie na utf8_bin niby dalej to pozostaje, ale gdy klikniemy Details to tam już jest ok, dziwne...
jeszcze mam jedną prośbę... czy to, że te znaki zapisują się tak jak wyżej nie będzie miało wpływu na pracę bazy danych?
Będzie kilka tabel, dużo operacji na nich, łączenia itd
Czy wszystko będzie ok?
Re: Polskie znaki w bazie MySQL
Czytaj uważniej, napisałem, że pma ma problemy z kodowaniem.
Tak, w utf8 jeden znak zajmuję od 1-3 bajtów, a normalnie(ASCII) zajmuje 1 bajt.jeszcze mam jedną prośbę... czy to, że te znaki zapisują się tak jak wyżej nie będzie miało wpływu na pracę bazy danych?
Re: Polskie znaki w bazie MySQL
dzięki za pomoc!
-
- Posty: 57
- Rejestracja: 21 lut 2009, 18:04:17
- Strona na CBA.pl: eland.cba.pl
- Lokalizacja: Płocki
- Płeć:
- User Agent:
Re: Polskie znaki w bazie MySQL
Help
Zainstalowałem na kompie Krasnal Serv. Wszystko działa jednak jak mam zrobić aby PMA zapisywało poprawnie polskie znaki ? Czy to jets tak że widzi krzaczki a po wczytanie przez PHP bedzie dobrze?
Zainstalowałem na kompie Krasnal Serv. Wszystko działa jednak jak mam zrobić aby PMA zapisywało poprawnie polskie znaki ? Czy to jets tak że widzi krzaczki a po wczytanie przez PHP bedzie dobrze?
Re: Polskie znaki w bazie MySQL
Wrzucam wszystko do bazy przez skrypty, kodowanie strony ustawione na ISO-8859-2, kodowanie w bazie na utf8_polish_ci. Wszystko działa jak należy.
Najczęściej takie problemy jak krzaczki pojawiają się, gdy wrzucamy dane do bazy przez PMA.
Najczęściej takie problemy jak krzaczki pojawiają się, gdy wrzucamy dane do bazy przez PMA.
Niě nerwuj hanysa
Re: Polskie znaki w bazie MySQL
Witam,
Na początek sorki, ze podpinam sie pod temat, ale po dwóch dniach drapania sie po glowie jestem zdesperowany. Ten post wydaje sie najlepiej obrazowac mój problem. Mam skrypt oparty na PHP/Mysql, który tłumacze z ang na pl. Skrypt wstawia temat postu w tytule strony. Polskie znaki wyświetlają się prawidłowo na stronie ale w tytule strony cały ciąg wyrazów, w których są polskie znaki wyświetla się jako %C3%B3%C5%82%C4%85%C5%9Be%C5%9B%C4%85q%C4%85 (lub podobnie). Ten sam ciąg znaków zapisywany jest w bazie danych w następującej formie ółąśeśąqÄ…
Próbowałem wszystkich sposobów, ustawień i kombinacji kodowania etc. Wstawiłem meta
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
i odpowiednio ustawienia bazę danych 'system porównań dla połącznia UTF_general_ci i Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
Przekonwerstowałem też wszystkie pliki PHP na UTF-8 bez BOM.
Zrobiłem też to wszystko analogicznie dla standardu ISO, ale wtedy moje PL znaki na stronie całkiem zwariowały. Tak, że narazie zostałem przy UTF-8.
Wydaje mi się że wszystkie ustawienia serwera mam kompatybine z tym co zadeklarowałem na stronie a wciąż polskie znaki w bazie zapisywane są jako krzaki, natomiast odczytywane poprawnie na stronie ale nie w tytule. jestem zupełnie skołowany. Tak na wypadek poeksperymentowałem w ustawieniach w bazie z latin1 i latin2 ale to nie wydawało się miec żadnego wpływu.
Może szanowni Państwo mają jakieś pomysły albo wiedzą gdzie powinienem szukac?
Długi mi ten post wyszedł ale próbuję wszystko dokładnie wyłuszczyc...jestem lajkonikiem w temacie więc bedę wdzięczny za łopatologiczne podejście...
Dzięki z góry!
Na początek sorki, ze podpinam sie pod temat, ale po dwóch dniach drapania sie po glowie jestem zdesperowany. Ten post wydaje sie najlepiej obrazowac mój problem. Mam skrypt oparty na PHP/Mysql, który tłumacze z ang na pl. Skrypt wstawia temat postu w tytule strony. Polskie znaki wyświetlają się prawidłowo na stronie ale w tytule strony cały ciąg wyrazów, w których są polskie znaki wyświetla się jako %C3%B3%C5%82%C4%85%C5%9Be%C5%9B%C4%85q%C4%85 (lub podobnie). Ten sam ciąg znaków zapisywany jest w bazie danych w następującej formie ółąśeśąqÄ…
Próbowałem wszystkich sposobów, ustawień i kombinacji kodowania etc. Wstawiłem meta
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
i odpowiednio ustawienia bazę danych 'system porównań dla połącznia UTF_general_ci i Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
Przekonwerstowałem też wszystkie pliki PHP na UTF-8 bez BOM.
Zrobiłem też to wszystko analogicznie dla standardu ISO, ale wtedy moje PL znaki na stronie całkiem zwariowały. Tak, że narazie zostałem przy UTF-8.
Wydaje mi się że wszystkie ustawienia serwera mam kompatybine z tym co zadeklarowałem na stronie a wciąż polskie znaki w bazie zapisywane są jako krzaki, natomiast odczytywane poprawnie na stronie ale nie w tytule. jestem zupełnie skołowany. Tak na wypadek poeksperymentowałem w ustawieniach w bazie z latin1 i latin2 ale to nie wydawało się miec żadnego wpływu.
Może szanowni Państwo mają jakieś pomysły albo wiedzą gdzie powinienem szukac?
Długi mi ten post wyszedł ale próbuję wszystko dokładnie wyłuszczyc...jestem lajkonikiem w temacie więc bedę wdzięczny za łopatologiczne podejście...
Dzięki z góry!
Re: Polskie znaki w bazie MySQL
Pokombinowałem i zamierzam w pliku kodowanym wg utf-8 pisać polskie znaki wg pewnej formuły:
('ż oraz Ż', 'to polskie zet z kropka'),
('ó oraz Ó', 'to polskie o z kreska'),
('Å‚ oraz Å', 'to polskie l z kreska'),
('ć oraz Ć', 'to polskie ci'),
('ę oraz Ę', 'to polskie e z przecinkiem'),
('Å› oraz Åš', 'polskie s z kreska'),
('Ä… oraz Ä„', 'polskie a z przecinkiem'),
('ź oraz Ź', 'polskie zet z kreska'),
('ń oraz Ń', 'polskie n z kreska');
('ż oraz Ż', 'to polskie zet z kropka'),
('ó oraz Ó', 'to polskie o z kreska'),
('Å‚ oraz Å', 'to polskie l z kreska'),
('ć oraz Ć', 'to polskie ci'),
('ę oraz Ę', 'to polskie e z przecinkiem'),
('Å› oraz Åš', 'polskie s z kreska'),
('Ä… oraz Ä„', 'polskie a z przecinkiem'),
('ź oraz Ź', 'polskie zet z kreska'),
('ń oraz Ń', 'polskie n z kreska');
Re: Polskie znaki w bazie MySQL
Kod: Zaznacz cały
public function wybierz($zapytanie){
if(!$this->conect){
$p = self::conect();
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
}
return mysql_query("SELECT ".$zapytanie);
}
moje rozwiązanie i działa w 100%
przed chwilą testowane ;]
pozdrawiam