![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Mam baze w MySQL'u 4.0 (docelowo ma byc w 3ce -- wiem ze LOL, ale coz ja poradze) (nawet skompilowalem ponownie z wszystkimi charsetami)
Cytat character set --> latin1 character sets --> latin1 big5 cp1251 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin1_de latin2 latin5 sjis swe7 tis620 ujis usa7 win1250 win1251ukr win1251 i probuje ustawic kodowanie na 'latin2' i tak: SET CHARACTER SET latin2 --> 1115 Unknown character set: 'latin2' SET NAMES latin2 --> 1193: Unknown system variable 'NAMES' tak samo dla latin1 SET character_set_client = x; SET character_set_results = x; --> brak takich zmiennych. Dla mysql 4.1, 5.0 to dziala. Pytanie jest proste: WTF? O co chodzi, czemu to nie dziala (przyklady z manuala dla starego mysqla http://dev.mysql.com/doc/refman/4.1/en/cha...onnection.html), jak to zrobic ![]() ![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
no a jak przelozysz baze to masz krzaki?? czy nie sprawdzales?? problemy z kodowaniem pojawily sie w 4.1 bo zmianiono tam domyslne przechowywanie w wersji 3.x i 4.x powinno byc chyba ok bez zadnych konersji (tak mi sie wydaje)
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Baze mam pusta, i bede dopiero wprowadzal dane.
Kodowanie jest ustawione na latin1 i nie moge go zmienic (moze sie nie da w tej wersji? ![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, tez borykam się od kilku ostatnich dni z problemem zmiany domyślnego kodowania bazy. Mój problem dotyczy bazy MySQL 5.0 postawionej na Windows 2000. Podczas konfiguracji zaznaczyłem w zakładce kodowania znaków
"Manual Selected Default Character Ser / Collation" i wybrałem "latin2" Jednak w konsoli tekstowej po wykonaniu polecenia mysql> show variables like "%char%"; miałem | Variable_name | Value | character_set_client | latin1 | character_set_connection | latin1 | character_set_database | latin2 | character_set_results | latin1 | character_set_server | latin2 | character_set_system | utf8 | character_sets_dir | /usr/share/mysql/charsets/ Udało mi się dojść do tego jak ustawić "latin2" dla pierszych 5-ciu pozcji character... W pliku "my.ini" w sekcji [mysql] i [mysqld] dopisałem default-character-set=latin2 character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets" I zawartość tych sekcji w pliku "my.ini" wygląda tak: Cytat . .. ... [mysql] default-character-set=latin2 character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets" # SERVER SECTION # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that # you have installed the server correctly (see above) so it reads this # file. # [mysqld] # The TCP/IP Port the MySQL Server will listen on port=3306 #Path to installation directory. All paths are usually resolved relative to this. basedir="C:/Program Files/MySQL/MySQL Server 5.0/" #Path to the database root datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/" # The default character set that will be used when a new schema or table is # created and no character set is defined default-character-set=latin2 character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets" ... .. . Po tych zmianach w pliku "my.ini" i zapisaniu zmian, wykonując polecenie mysql> show variables like "%char%"; dostałem | Variable_name | Value | character_set_client | latin2 | character_set_connection | latin2 | character_set_database | latin2 | character_set_results | latin2 | character_set_server | latin2 | character_set_system | utf8 | character_sets_dir | /usr/share/mysql/charsets/ Teraz pozostała mi jeszcze zmiana "character_set_system" z utf8 na latin2. Jeżeli ktoś wie jak to zrobić to proszę o informację. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
@dudus1 nie jestem pewien czy to zrobisz, wydaje mi sie ze utf8 systemem w jakim sa przechowywane informacje i mozesz jedynie zmieniac inne wartosci ale nie jestem tego pewien
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Kinool @ 2005-12-07 11:44:04) @dudus1 nie jestem pewien czy to zrobisz, wydaje mi sie ze utf8 systemem w jakim sa przechowywane informacje i mozesz jedynie zmieniac inne wartosci ale nie jestem tego pewien Witaj Kinool, prawdopodobnie możesz mieć rację. W manualu na stronie http://dev.mysql.com/doc/refman/5.0/en/charset-server.html nie mogłem znaleźć żadnego polecenia do zmiany tej wartości. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 15.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
W manualu mysql'a jest gdzies napisane, ze od wersji jakiejstam (pisze z pamieci) ze wzgledu na to, iz kazda kolumna w tabeli moze miec inne niezalezne kodowanie, zmieniono kodowanie tabel systemowych na utf8.
Tylko to daje mozliwosc zapamietania nazw tabel i komumn z uwzglednieniem roznych systemow kodowania znakow (utf8 jest standartem kodowania pozwalajacym na przedstawienie w formie numerycznej znakow alfabetow prawie wszystkich jezykow swiata) bylo tam tez cos o niepelnym sparciu dla utf2,4 i 16 o ile sie nie myle. Wniosek z tego jeden tabele systemowe sa w utf8 i nijak ich kodowania nie zmienisz. Nie wplywa to jednak w zaden sposob na funkcjonalnosc tworzonych baz danych po wybraniu odopowiedniego kodowania i collation dla bazy wszystkie tabele powinny wewnatrz bazy zachowac te same ustawienia i nie powinno byc problemu z kodowaniem latin2 tylko odpowiednie collation trzeba ustawic zeby sotrowanie bylo poprawne |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
No widzicie jak pięknie się rozwija ten wątek, jestem pod wrażeniem i chyle czoła wszystkim zaangażowanym.
Doprowadziłem bazę do stanu "latin2". Podczas wszelkich czynności (edycja, dopisywanie, usuwanie, zakładanie, itp.) baza zapisuje polskie ogonki prawidłowo i prawidłowo zwraca wyniki zapytania "select" ale tylko w konsoli tekstowej. Jednak problem mam podczas pobierania danych z bazy i wyświetlenia ich na stronie. Dodam, że kodowanie strony jest iso-8859-2, a wszelkie pliki .php, .html zakodowane w Pajączku z zastosowaniem wymienionego kodowania polskich znaków. A efekt taki, ZNAKI ZAPYTANIA W MIEJSCACH POLSKICH LITER. Rozpoczołem więc swoje poszukiwania po necie i jak na razie nic. Zauważyłem coś takiego przy zainstalowanym phpMyAdmin'ie (wersja 2.7.0.pl1), że gdy uruchomię go w przeglądarce to mam tylko do wyboru języki kodowania z zakresu "utf-". Dodam, że w pliku "config.default.php" zmieniłem kodowanie iso w pozycji $cfg['DefaultLang'] = 'en-iso-8859-1'; na $cfg['DefaultLang'] = 'en-iso-8859-2'; i w pozycji $cfg['DefaultCharset'] = 'iso-8859-1'; na $cfg['DefaultCharset'] = 'iso-8859-2'; i wybierając Zmienne systemowe serwera MySQL mam następujące dane (podaję tylko część wartości Cytat . .. ... | wartość sesji | wartość globalna character set client | utf8 | latin2 character set connection | utf8 | latin2 character set database | latin2 | latin2 character set results | utf8 | latin2 character set server | latin2 | latin2 character set system | utf8 | utf8 character sets dir | C:/Prog.../charsets | C:/Prog.../charsets collation connection | latin2_general_ci | latin2_general_ci collation database | latin2_general_ci | latin2_general_ci collation server | latin2_general_ci | latin2_general_ci ... .. . Irytuje mnie niezgodność w pozycji character set client, character set connection i character set results. Czy może to mieć wpływ na sposób wyświetlania danych na stronie www ? (przypuszczam, że tak) Czy można te wartości ustawić tak, aby były w obu przypadkach (wartość sesji i wartość globalna) jednakowe, a więc latin2 ? Czy może jest jakiś problem z pracą bazy MySQL 5.0.15 w windows ? Liczy się dla mnie każda odpowiedź. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 5.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam dokładnie ten sam problem... nie mogę znaleźć rozwiązania.
Może ktoś coś podpowie - może przy wyświetlaniu zamieniać znaki. ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 0 Dołączył: 26.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja natomiast zainstalowalem sobie wamp 1.6
strona ma kodowanie utf-8 (robiona w palaczku) administruje baza mysql 5.0.17 za pomoca PDO. wszystko ladnie chodzi, polskie koncowki sa ale jak wszedlem do phpmyadmin (utf_polish_ci lub utf_general - do wyboru, nie widac zadnych roznic po zmianie) to widac krzaczki. MOglbym juz sobie podarowac, bo wszystko ladnie wyglada na stronie, ale podczas polecenia 'SELECT cos like '%".$zmienna."%', to szuka wg kodowania zlego zapisanego w bazie. Wie ktos ja to zmienic. Przeszukalem chyba wszystko i nic. Ciagle jest zly zapis do bazy, a wszedzie jest na utf8. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 15.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:15 |