Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Błędne kodowanie ("Krzaki") na stronie a zapis do bazy danych
Agape
post 23.06.2011, 09:06:51
Post #1





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Witam. Pobieram curlem kawałek innej strony gdzie jest błędne kodowanie i mam słowo ale zapisane jako s?ow zapisuje mi się to do bazy danych jako s i nic więcej ;/ Ucina mi dalszą część zdania ...
plik którym pobieram jest w kodowaniu utf-8 a baza na utf-8_polish_ci

Ten post edytował Agape 23.06.2011, 09:07:25


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 23.06.2011, 09:23:03
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Temat: MYSQL Polskie znaki
Temat: Najczestsze bledy


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 09:26:21
Post #3





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Ale polskie znaki mi się dodają, jeśli na stronie są w odpowiednim kodowaniu. Jak na stronie są źle podane to wtedy jest problem ;/


--------------------
Go to the top of the page
+Quote Post
Fifi209
post 23.06.2011, 10:48:05
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Sprawdź kodowanie strony, którą pobierasz, kodowanie plików etc. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 10:51:48
Post #5





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Pobierana strona w meta ustawione ma utf-8. Każda przeglądarka ustawia jej takie kodowanie i są krzaki. Plik którym to pobieram ma ustawione kodowanie utf-8. Dodałem jeszcze nagłówek w php zeby sie upewnić. Tabela w mysql ma utf8_polish_ci. Może jakoś da się podmienić "krzak" na normalną literę. str_replace nie działą przy daniu jako "igłe" skopiowanego krzaka. Myśle ze moze ta strona mieć ustawione złe kodowanie i wyrzuca znak w innym kodowaniu niż jest sama strona.

Ten post edytował Agape 23.06.2011, 10:53:42


--------------------
Go to the top of the page
+Quote Post
Ulysess
post 23.06.2011, 11:15:47
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


przy połączeniu z bazą użyj
mysql_query('SET NAMES utf8');
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 11:32:39
Post #7





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Właśnie mam ;/ tam polskie znaki wchodzą, nie wchodzi tylko ten krzak ;/
Kod
    $baza_danych = new mysqli($db['host'], $db['nickname'], $db['password'], $db['db']);
    $baza_danych -> query("SET NAMES 'utf8'");


Ten post edytował Agape 23.06.2011, 11:35:41


--------------------
Go to the top of the page
+Quote Post
Ulysess
post 23.06.2011, 11:55:37
Post #8





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


ale wyskakuje ci jeden krzak na poczatku strony questionmark.gif ->zmein na format utf 8 bez BOM. krzaki są w stałej zawartości strony ? czy chodzi o pobierane questionmark.gif może przy dodawaniu rekordów plik nie formatu utf 8 ?
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 12:01:50
Post #9





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Krzak jest na stronie tylko w jednym miejscu. W tym miejscu skrypt tej strony pobiera tekst z pliku. Najprawdopodobniej plik ten jest źle zakodowany, powiedzmy w ANSI a strona jest w utf-8 i w takim formacie wyświetla znaki. Przy pobieraniu tego tekstu z pliku wyświetla zamiast ę "krzak".

Strona jest zakodowana w utf-8 i poprawnie wyświetla wszystko inne oprócz tego tekstu który tak jak piszę jest pobierany z prawdopodobnie źle zakodowanego pliku


--------------------
Go to the top of the page
+Quote Post
Spawnm
post 23.06.2011, 13:26:36
Post #10





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




A jak przefiltrujesz dane przez iconv() to krzak zostaje? Powinien zniknąć.
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 13:29:07
Post #11





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Nie próbowałem bo szczerze mówiąc nie wiem jak rozpoznać w jakim kodowaniu zapodany jest tekst ;/


--------------------
Go to the top of the page
+Quote Post
Spawnm
post 23.06.2011, 14:01:25
Post #12





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Ale wiesz w jakim formacie jest twoja aplikacja smile.gif
Daj $str =iconv("utf-8", "utf-8//IGNORE", $str);
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
Agape
post 23.06.2011, 14:32:09
Post #13





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


"krzak" zniknął. Na jego miejscu jednak nic się nie pojawiło ;/ eh


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2025 - 18:41