![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Od dłuższego czasu mam spory problem, z którym nijak nie potrafię sobie proadzić. Otóż mam bazę danych, która nie posiada kodowania ISO. W PHPMyAdmin mam napisane: System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) System porównań dla połączenia MySQL: Tutaj mam listę do wyboru z opcjami takimi jak tu www.krzysiek.moja-ostroleka.pl/kodowanie_mysql.htm Problem tym, że nie wiem za bardzo co wybrać. Kombinowałem z róznymi ustawieniami, ale bez większego efektu. Problem polega na tym, że gdy skrypt php przeszukuję baze danych to problem pojawia się z polskimi znakami. Najczęściej tylko z ś,Ś,ł oraz Ł. Czy jest jakieś ustawienie które kodowałoby mi polskie znaki normalny sposób? Bo aktualnie mam takie hieroglify w bazie: ż = ¿ ł = ³ ę = ê ą = ± Ł = £ ś = ¶ ń = ñ ź = ¼ ć = æ Ż = ¯ Chyba że jest inny sposob na omienicie takich problemow? kodowanie formularza, zmienic kodowanie strony (aktulanie jest iso-8859-2). Poradźcie coś bo już mi włosy wypadają. -------------------- Pozdrawiam
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
jest juz kilka watkow na ten temat. sproboj na pocztaku skryptu wywolac zapytanie "SET NAMES latin2".
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 14.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym spróbował jeśłi masz w MySQL ' u kodowanie utf-8 dać na stronie również utf-8.
Nie wiem jakie są możliwości MySQL ' a pod wzgledem takich obiektow w bazie jak procedury skladowane czy funckje, ale moglbys napisac funckje lub procedure konwersji pomiedzy kodowaniem na stronie i kodowaniem w bazie , zamieniajac w slowie wejsciowym polskie znaki ze strony np '±' na 'ą'. Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 6.04.2005 Skąd: Międzyborów Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Qrzysio @ 2005-05-14 09:40:41) Tutaj mam listę do wyboru z opcjami takimi jak tu www.krzysiek.moja-ostroleka.pl/kodowanie_mysql.htm ustaw z tej listy: latin2_general_ci u mnie pomogło -------------------- pozdrawiam
jedrus4 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Hmm nie bardzo. Po zmienieniu w bazie na latin2 _general_ci i tak nadal są te same krzaczki.
Mam wyszukiwarkę i poza tym, że literka ą wygląda tak ±, to poprawnie działa wyszukiwanie wyrazu, klątwa. Niestety znalezienie wyrazu KLĄTWA już nie działa. Myślałem zeby wyszukiwać tylko małe litery, ale tytuły nie mogą byc tylko z małych liter.... poza tym php i tak nie zamienia poprawnie małego ś na wielkie Ś itp. Może pomogłoby wprowadzenie w znaczniku FORM paramteru kodowania charset.... widziałem takie cudo na jakiejś stronie, ale nie wiem czy to działa tak jak bym tego chciał. Poza tym nie wiem jakie kodowanie podać?? -------------------- Pozdrawiam
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat(sopel @ 2005-05-14 12:53:07) jest juz kilka watkow na ten temat. sproboj na pocztaku skryptu wywolac zapytanie "SET NAMES latin2". u mnie tez byl taki problem, przenosilem dane z mysqla 4.1.x na serwer 4.1.11 i krzaki mialem nie wiadomo czemu... Ale jak uzywalm tego zapytania jako pierwszego zapytania wyslanego do mysqla, to jest ok. Wraca wszystko do pozadku. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Jak dokładnie wywołać to zapytanie?
-------------------- Pozdrawiam
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 216 Pomógł: 0 Dołączył: 9.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mysql_query( ... ); ?
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 26.03.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zaraz po zapytaniu łączącym z bazą zrób:
w phpmyadmin mam ustawione utf8 i utf_general_ci i wszystko jest ok. Ale tez miale podobny problem jak wy przy przenoszeniu bazy na inny serwer. Po exporcie i pozniej imporcie byly krzaki. Doszedlem do tego ze przy tworzeniu tabel koniecznie trzeba podac sposób kodowania i collation
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam ...
ale sama zmiania (z tego co pamiętam) nic nie daje ... dane musisz wgrać jeszcze raz przez połączenie w danym kodowaniu ... czyli tworszysz nową bazę (lub zmieniasz istniejącej) kodowanie na utf i potem przez połączenie z bazą też w utf (lub latin2_general_ci - btw: ci znaczy case insensitive - czyli jak zrobisz wszystko ok to nie będzie miało znaczenia czy to Ą czy ą, znajdzie) wsadzasz dane ... potem pobierasz już normalnie ... pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Już traciłem nadzieję, ale działa!!
Pozostaje tylko pytanie jak w jakiś w miare szybki sposób "przekonwertować" te wszystkie krzaczki na polskie znaki? Bo ręcznie to z miesiąc mi to zajmie.... EDIT: Jeszcze jedno pytanie: Gdy wykonałem następujący skrypt:
to jest u wszystko okej. A jaka wartość SET NAMES była przed wykonaniem komendy? jak to sprawdzić? Ten post edytował Qrzysio 2.06.2005, 09:06:03 -------------------- Pozdrawiam
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat A jaka wartość SET NAMES była przed wykonaniem komendy? jak to sprawdzić? SHOW CREATE TABLE lub SHOW CREATE DATABASE Cytat Pozostaje tylko pytanie jak w jakiś w miare szybki sposób "przekonwertować" te wszystkie krzaczki na polskie znaki? Bo ręcznie to z miesiąc mi to zajmie.... wyeksportuj baze i uzyj opcji Zatsap tekst dowolnego edytora i potem zrob z powrotem import Ten post edytował sopel 2.06.2005, 10:22:52 -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym że edytorem sie nie da. Polskie znaki w bazie danych to "?" a jak zrobię eksport i edytuję w edytorze textu to wiadomo ze bedzie traktowal kazdy znak zapytania jako taki wlasnie znak i nie rozrozni ktory ? powinien być ż, który ą itp. Trzeba by było wykonac to od razu na bazie danych. Chyba ze masz jakies dobre narzedzie/notatnik
![]() -------------------- Pozdrawiam
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
a nie masz wersji bazy sprzed koncwersji?
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Niestety
![]() Strukturę mam taką, że tylko dwa pola muszą być latin, reszta moze byc w standardowym - staram sie wlasnie wydobyc jak sie nazywa to standardowe ustawienie. Dzieki temu bede mogl wyswietlac w latin a czesc w tym standardowym EDIT: jednak chyba nie będzie to proste ![]() Ten post edytował Qrzysio 2.06.2005, 10:53:30 -------------------- Pozdrawiam
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 26.03.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Qrzysio @ 2005-06-02 11:39:12) Problem w tym że edytorem sie nie da. Polskie znaki w bazie danych to "?" a jak zrobię eksport i edytuję w edytorze textu to wiadomo ze bedzie traktowal kazdy znak zapytania jako taki wlasnie znak i nie rozrozni ktory ? powinien być ż, który ą itp. Trzeba by było wykonac to od razu na bazie danych. Chyba ze masz jakies dobre narzedzie/notatnik ![]() prawdopodobnie miales kodowanie utf-8 , otworz w jakims edytorze ktory czyta takie kodowanie np PSPAD (polecam) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie pomaga - chyba że się nie znam. Jesliby się komuś chciało sprawdzić to plik z kopią bazy danych jest tutaj:
www.krzysio.us/forum/wypozyczalnia_baza_filmow.rar Częśc rekordów została poprawiona ale to kropla w morzu tego co trzeba poprawić. -------------------- Pozdrawiam
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam
a szukałeś u źródła ![]() ![]() http://dev.mysql.com/doc/mysql/en/set-option.html oraz http://dev.mysql.com/doc/mysql/en/show.html a rozwiązaniem twojego problemu jest: http://dev.mysql.com/doc/mysql/en/charset-convert.html ... czyli: jeżeli nie masz ściągasz mysql 41 lub nowsze instalujesz, importujesz do testowej tabeli, sprawdzając czy w importowanej bazie NA PEWNO JEST STARE (ZLE) KODOWANIE ![]() potem robisz zapytanie: które przeniesie ci do końcowej tabeli ... trochę roboty ale jak już puścisz zapytanie to samo ci zrobi wszystko ... ps. co do znaków zapytania - one tylko tak się wyświetlają chyba ... w bazie powinno być ok. -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 16.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pozwolicie, ze dalej pociagne ten watek. Ja mam taki problem:
Musze eksportowac pliki ze starego serwera na nowy. Na starym serwerze mam: - PHPMyAdmin 2.3.2, - MySQL 4.0.24 -język PHPMyAdmin ustawiony na polish (charset pl-iso 8859-2). Na nowym sererze mam: - PHPMyAdmin 2.6.1pl-3, - MySQL 4.1.11, language polish (pl-utf-8 ), - system kodowania znaków dla MySQL: UTF-8 Unicode (utf8), - system porównań dla połączenia MySQL: utf8_general_ci. Eksportuje baze ze starego serwera, uzyskuje ja w pliku .php. Probuje zrobic import z tego pliku na nowy serwer i wtedy mniej wiecej polowe tabel udaje mi sie wgrac, ale bez polskich znakow (same krzaki) a reszty tabel nie udaje mi sie w ogole wgrac od momentu gdy mi sie pojawia blad: MySQL zwrócił komunikat: #1062 - Duplicate entry 'u' for key 1 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in (...) PROBLEM JEST W KODOWANIU ZNAKOW poniewaz SQL odbiera moje zapytanie INSERT INTO phpbb_search_wordlist VALUES ('użytkowników', 1004, 0) - tak jest napisane w pliku jako INSERT INTO phpbb_search_wordlist VALUES ('u?ytkownik1004, 0) - znika końcówka ów' (i w tym ten apostrof - a to generuje blad). Robilem juz z moim plikiem w ktorym mam wyeksportowana baze wszystko. Zamienilem kodowanie w Notatniku na utf-8 a wtedy w ogole nie udalo mi sie przeprowadzic nawet czesci importu bo pojawil sie jakis niestworzony blad: Błąd zapytanie SQL: # phpMyAdmin MySQL-Dump # version 2.3.2 # http://www.phpmyadmin.net/ (download page) # # Host: mysql.ibc.pl # Czas wygenerowania: 16 Cze 2005, 21:28 # Wersja serwera: 4.00.24 # Wersja php: 4.3.10 # Baza danych : `baza2` # -------------------------------------------------------- # # Struktura tabeli dla `dane` # CREATE TABLE dane( user_id smallint( 3 ) unsigned NOT NULL AUTO_INCREMENT , login varchar( 12 ) NOT NULL default '', imie varchar( 15 ) NOT NULL default '', nazwisko varchar( 30 ) NOT NULL default '', firma varchar( 30 ) NOT NULL default '', email varchar( 40 ) default NULL , ulica varchar( 30 ) NOT NULL default '', kod mediumint( 6 ) NOT NULL default '0', miasto varchar( 30 ) NOT NULL default '', haslo varchar( 12 ) NOT NULL default '', ostatnie_logowanie datetime NOT NULL default '0000-00-00 00:00:00', obecne_logowanie datetime NOT NULL default '0000-00-00 00:00:00', ilosc_kontraktow tinyint( 3 ) NOT NULL default '0', PRIMARY KEY ( user_id ) ) TYPE = MYISAM MySQL zwrócił komunikat: #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 '# phpMyAdmin MySQL-Dump # version 2.3.2 # http://www.phpmyadmin.net/ (downl' at line 1 podczas gdy skladnia jest, jak widac poprawna. Czy moglibyscie mi pomoc? Będę bardzo wdzięczny, pozdrawiam. Jędrzej |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 0 Dołączył: 27.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
a wiecie moze w ogole jakie kodowania trzeba ustawić w php, apache i mysql'u (najnowszych wersjach), aby polskie znaki dzialaly?? i gdzie to sie ustawia?? dzięki
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:14 |