![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sczytuję treść strony www w taki sposób:
i następnie zapisuje interesujące mnie fragmenty do bazy danych za pomocą SQLa. Wszystko działa prawidłowo oprócz kodowania polskich znaków - tzn. na stronie www są oczywiście polskie znaki ale po skopiowaniu do bazy danych już ich niema. Dodam, że ta strona źródłowa z której sczytuję treść ma kodowanie iso-8859-2. W phpMyAdmin jest taka opcja "Metoda porównywania napisów" i można przypisać różne wartości poszczególnym polom - próbowałem różnych: UTF-8, ascii-bin, uft8_polish_ci, ale nie pomagało. Jest jakiś sposób, żeby polskie znaki było odpowiednio kodowane w bazie danych? Ten post edytował Demoneos 1.05.2010, 11:05:34 -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 24 Dołączył: 21.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Będąc zalogowanym w mysql.exe wpisuję następujące zapytania:
Następnie w skrypcie php wstawiłem takie instrukcje:
Polskich znaków wciąż nie ma w bazie danych. Czy zrobiłem coś źle? EDIT: Właściwie to problem jest już w samym skrypcie php - po użyciu funkcji:
kiedy w następnej linijce skryptu wyświetlam tą zmienną: echo $imiona_utf8; to już tutaj nie ma polskich znaków (są krzaczki w ich miejsce). Jak to możliwe? Przecież funkcja iconv() ma służyć właśnie temu, żeby prawidłowo przekonwertować znaki z jednego kodowania do drugiego. Ten post edytował Demoneos 1.05.2010, 14:34:44 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 287 Pomógł: 10 Dołączył: 22.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat - Sprawdź kodowanie strony, przed zapytaniem użyj
- Zmień kodowanie tabeli i bazy na `utf_polish_ci` - Sprawdź czy w danej kolumnie nie są wpisane krzaczki, moze być tak, że masz wszystko dobrze ale krzaczki zostały ze starego kodowania - Użyj przed zapytaniem -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Matimor - zrobiłem tak jak napisałeś i na localhoście wszytko działało idealnie. Niestety kiedy przerzuciłem stronę wraz z bazą danych na konto na serwerze home.pl, zamiast polskich znaków są krzaczki. Baza danych w której są tabele dla mojej strony www ma odpowiednie kodowanie porównywania napisów - "utf-unicode_ci". Na serwerze znajduje się jeszcze inna baza "information_schema" i ma inne kodowanie porównywania napisów - "utf-general_ci" (widać to na poniższym obrazku) i niestety nie mogę tego zmienić. Może to jest powodem problemów?
![]() (zamazałem tylko nazwę bazy w której są tabele dla moje strony www) Ten post edytował Demoneos 5.05.2010, 18:24:57 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 135 Pomógł: 158 Dołączył: 19.03.2009 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Nie sądzę jakie masz kodowanie dla tabel i rekordów od tego bym zaczął masz polskie znaki w pliku .sql
![]() Ten post edytował krzysztof_kf 5.05.2010, 18:37:34 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie sądzę jakie masz kodowanie dla tabel i rekordów od tego bym zaczął masz polskie znaki w pliku .sql ![]() Jak można to najprościej sprawdzić? jeśli tak to ok jeśli nie to spróbuj przekonwertować bazę danych programem gżegrzółką może to ci pomoże . A konkretnie jakie pliki mam przekonwertować? Kojarzę coś, że tabele są zapisywane w plikach .MYD, .MYI i .frm, więc może te? W ostateczności, po przeczytaniu tego poradnika: http://blog.mwojcik.pl/2006/10/08/polskie-znaki-w-mysql/ zadziałało ![]() ![]() Prawdopodobnie wcześniej przy imporcie tabeli źle ustawiłem kodowanie (opcja "Zestaw znaków dla pliku:") i stąd były te krzaczki. PS Już bardziej tego nie mogli zamotać ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:34 |