![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 6.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Sprawa jest pewnie błacha ale juz brak mi pomysłow dokument index.php (koowanie UTF-8-bez BOM) phpmyadmin Sortowanie połączenie z serwerem: UFT8mb4-polish_ci baza daynych: uft8_polish_ci tabela: uft8_polish_ci struktura tabeli: kazde pole edytowane na: uft8_polish_ci pole tytul: phpmyadmin:brak polskich znaków (dodane przez formularz php) strona: polskie znaki występują pole tresc: phpmyadmin: polskie znaki wystepują (oprócz litery ó) strona: brak polskich znaków znaki ? Po dołączeniu do skryptu php linijki $polaczenie->set_charset("utf8"); pole tresc; powoduje iż w bazie mam polskie znaki (oprócz ó) , a w tresci na stronie mam wszystkie polskie znakiw tym ó. pole tytul; Nie mam polskich znaków ani tu ani tu a w bazie jest w ten sam sposob ustawione utf8_polish_ci |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
W mysql znaki nie mogą być zapisane jako polskie (ą, ę itp). Dodaj sobie prosty formularz na testowej stronie i daj polskie znaki w zapytaniu insert. Automatycznie się sformatują do znaków specjalnych.
Na stronie ustaw meta charset=utf-8. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat W mysql znaki nie mogą być zapisane jako polskie (ą, ę itp). A to ciekawe, ciekawe... Radzę Ci zweryfikować swoją wiedzę na ten temat. Spróbuj bezpośrednio w phpmyadmin dodać polkie znaki razem z "ó". Jeżeli będzie ok, to problem leży po stronie Twojego skryptu. Jeżeli nie będzie ok, to problem leży w konfiguracji kodowania po stronie bazy danych. Ten post edytował lukaskolista 26.12.2016, 12:28:29 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 872 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Ja osobiście polecam metodę na przepisanie treści.
1. Pobierz dane, na połączeniu w "starym" kodowaniu. 2. Potem zapisz dane, na połączeniu w "nowym" kodowaniu. Z konwersją danych zawsze były problemy. A takie dwu połączenia elegancko konwertuje polskie znaki z kodowań starych na kodowanie nowe. Nie gubią się żadne znaki jak przy konwersji iconv() czy inne funkcje, które są w sumie dość niepewne. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 6.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
A to ciekawe, ciekawe... Radzę Ci zweryfikować swoją wiedzę na ten temat. Spróbuj bezpośrednio w phpmyadmin dodać polkie znaki razem z "ó". Jeżeli będzie ok, to problem leży po stronie Twojego skryptu. Jeżeli nie będzie ok, to problem leży w konfiguracji kodowania po stronie bazy danych. Witam jak wpisze np. Bezpośrednio w phpmyadmin "góra" to jest ok ale wyślę przez skrypt to pojawia sie krzaczki w najlepszym wypadku wszystkie prawidłowo a "ó" &cout: i hmm Ja osobiście polecam metodę na przepisanie treści. 1. Pobierz dane, na połączeniu w "starym" kodowaniu. 2. Potem zapisz dane, na połączeniu w "nowym" kodowaniu. Z konwersją danych zawsze były problemy. A takie dwu połączenia elegancko konwertuje polskie znaki z kodowań starych na kodowanie nowe. Nie gubią się żadne znaki jak przy konwersji iconv() czy inne funkcje, które są w sumie dość niepewne. Witam mógłbyś trochę bardziej wyjaśnić co to znaczy nowe i stare kodowanie;) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 872 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Może pośpieszyłem się z radą. Ale nie zapytałem się czy dane które wprowadzałeś do bazy były na kodowaniu UTF-8 czy może innym?
Bo ja kiedyś też zrobiłem tak że poprzestawiałem gdzie się da kodowanie na UTF-8, ale i tak miałem krzaki. Dopiero otwarcie połączenia na poprzednim kodowaniu i przekazanie wartości 1:1 do drugiego połączenia, zapisało kontent w bazie z prawidłowym kodowaniem, |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 18 Dołączył: 5.02.2016 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
A to ciekawe, ciekawe... Radzę Ci zweryfikować swoją wiedzę na ten temat. Spróbuj bezpośrednio w phpmyadmin dodać polkie znaki razem z "ó". Jeżeli będzie ok, to problem leży po stronie Twojego skryptu. Jeżeli nie będzie ok, to problem leży w konfiguracji kodowania po stronie bazy danych. Gadasz jak potłuczony ![]() Zasugerowałem z własnego doświadczenia. Po bezpośrednim wprowadzeniu do kolumny np. "Płońsk", wywalało mi "P?o?sk" na stronie, dziwiłem się o co chodzi... a chodziło właśnie o polskie znaki, które nie zostały sformatowane bo to była bezpośrednia edycja. Dopiero zrobiłem sobie na testowej stronie formularz i UPDATE tego wpisu. Przy UPDATE dałem SET ... "Płońsk", a w MySQL zrobiło się "PÅ‚oÅ„sk", na stronie przy charset=utf-8, wyświetlało bardzo dobrze ;-) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 6.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Może pośpieszyłem się z radą. Ale nie zapytałem się czy dane które wprowadzałeś do bazy były na kodowaniu UTF-8 czy może innym? Bo ja kiedyś też zrobiłem tak że poprzestawiałem gdzie się da kodowanie na UTF-8, ale i tak miałem krzaki. Dopiero otwarcie połączenia na poprzednim kodowaniu i przekazanie wartości 1:1 do drugiego połączenia, zapisało kontent w bazie z prawidłowym kodowaniem, To jest skrypt dodawania nowego tematu
gdzie umieścić informacje o kodowaniu utf-8 Ten post edytował hiper0007 28.12.2016, 23:36:07 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 872 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 6.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
po 14 linii coś takiego:
Wszystko jest elegancko oprócz litery "ó" Po dodaniu do bazy tematu o tresci "ańaa aaśałaa aaęaaąaa aaćaaaaóaaaażaaaaaź" Dostaje rezultat w phpmyadmin "ańaa aaśałaa aaęaaąaa aaćaaaaóaaaażaaaaaź" Wyszystko ładnie sie konwertuje oprócz litery "ó";) Ten post edytował hiper0007 28.12.2016, 23:51:09 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 376 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mieszasz obiekty ze stylem strukturalnym. Nie masz tam gdzieś przypadkiem tinymce albo inny edytor?
Ten post edytował viking 29.12.2016, 02:15:56 -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Gadasz jak potłuczony tongue.gif Zasugerowałem z własnego doświadczenia. Po bezpośrednim wprowadzeniu do kolumny np. "Płońsk", wywalało mi "P?o?sk" na stronie, dziwiłem się o co chodzi... a chodziło właśnie o polskie znaki, które nie zostały sformatowane bo to była bezpośrednia edycja. Kolego cienki jesteś ![]() Jeśli piszesz z własnego doświadczenia, to widocznie masz za małe. Co do tematu: wprowadzasz treść przez jakiś edytor, czy zwykłe pole tekstowe? Cytat ...najlepszym wypadku wszystkie prawidłowo a "ó" &cout: i hmm Wygląda to jak jakaś dziwna (nieistniejąca) encja html. Jest to o tyle istotne, że poprawna encja dla "ó" to & oacute; (celowo ze spacją, bo edytor forum zamienia na ó). Jeżeli zrobiłeś literówkę i jednak dostajesz & oacute;, to użyj zamiast encode to decode dla encji, do czego odniosłem się poniżej. Swoją drogą po co zamieniasz znaki specjalne HTML na encje: ? Ten post edytował lukaskolista 29.12.2016, 15:23:38 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 6.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Kolego cienki jesteś ![]() Jeśli piszesz z własnego doświadczenia, to widocznie masz za małe. Co do tematu: wprowadzasz treść przez jakiś edytor, czy zwykłe pole tekstowe? Wygląda to jak jakaś dziwna (nieistniejąca) encja html. Jest to o tyle istotne, że poprawna encja dla "ó" to & oacute; (celowo ze spacją, bo edytor forum zamienia na ó). Jeżeli zrobiłeś literówkę i jednak dostajesz & oacute;, to użyj zamiast encode to decode dla encji, do czego odniosłem się poniżej. Swoją drogą po co zamieniasz znaki specjalne HTML na encje: ? Zabezpieczam formularz przed niechcianymi znakami niebezpiecznymi dla skryptu... " to użyj zamiast encode to decode dla encji," mozesz mi to wyjaśnić troche prościej... ![]() ó Ten post edytował hiper0007 1.01.2017, 20:49:06 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ja używam w bazie kodowania "utf8_general_ci" a w php utf8 bez bom i nie mam żadnych problemów z polskimi znakami.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zabezpieczam formularz przed niechcianymi znakami niebezpiecznymi dla skryptu... " to użyj zamiast encode to decode dla encji," mozesz mi to wyjaśnić troche prościej... wink.gif Przy okazji życze wszystkim forowiczą szczęśliwego nowego roku;) Nic nie zabezpieczasz, a jak już to skrypt wyświetlający dane z formularza, ale takie zabezpieczenie powinno być właśnie w tym skrypcie. Spróbuj teraz wyszukać w przesłanych formularzach tych ze znakiem np. > w traści - będziesz musiał szykać encji html i szukać po encji, jest to bez sensu. Encje enkoduje się przed wyświetleniem kodu html a nie przed zapisem do bazy. Skoro już wiemy, że z formularza przychodzi encja html to nie wiem w czym problem - kodowanie z bazą jest ok, po prostu do skryptu w treści z formularza kontaktowego trafia już ta encja (którą nazwałeś krzakami) lub jest tworzona gdzieś w skrypcie przed zapisem. Ten post edytował lukaskolista 2.01.2017, 08:33:27 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 00:02 |