![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam program, który zapisuje do bazy danych MySQL dane tekstowe, ale nie da się tam zmienić, żeby zapisywało w UTF-8 (baza oczywiście jest ustawiona jako utf-8). W rezultacie w bazie lądują wpisy bez polskich znaków. Czy da się temu zaradzić, żeby te znaki potem odczytać jako polskie jakąś funkcją? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 148 Pomógł: 14 Dołączył: 23.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jakiś przykład tego co zapisało się w bazie. Jeśli to jest np "a" zamiast "ą" no to magii nie ma. Jeśli jakieś "krzaki", np. "ą", "ą", "ą" lub coś takiego to może coś jeszcze da się zrobić.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
http://forum.php.pl/index.php?showtopic=250738
^^ Świeżutki temat. Zasada prosta - baza, narzędzie, skrypt, plik z danymi, skrypt wczytujący, skrypt wyświetlający - kodowanie musi być to samo. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Cały problem chyba nie leży po stronie PHP ale opiszę go bo być może ktoś będzie w stanie mi pomóc.
Kolumna w której zapisuje dane ma ustawione kodowanie na utf8 (IMG:https://www.autoitscript.com/forum/uploads/monthly_2016_06/utf.PNG.55b29172303e1b03b6abae9ad69e8780.PNG) Do operacji związanych z bazą danych używam zewnętrznego programu napisanego w języku AutoIt. Domyślną wartością kodowania znaków dla połączenia z bazą danych jest "latin1". Jak zapisze w taki sposób ciąg znaków "aącćeęlłnńoósśzżzź" to w bazie wygląda to w ten sposób (odczytane przy użyciu programu MySQL Administrator): (IMG:https://www.autoitscript.com/forum/uploads/monthly_2016_06/saved.PNG.90e5304108d33208ccb74b91f0aad1c0.PNG) Co ciekawe, jeśli teraz przez mój program użyje zapytania typu "SELECT" z ustawionym kodowaniem znaków 'latin1' to wyczytane informacje będą wyświetlane z prawidłowymi polskimi znakami. Niestety po wczytaniu danych przez przeglądarkę z pliku php mam szlaczki (bo kodowanie tam mam ustawione na utf8) Jeśli zmienię kodowanie znaków na "utf8" w parametrach połączenia z bazą MySQL w moim programie (AutoIt) to wtedy zapisany ciąg wygląda w bazie w taki sposób: (IMG:https://www.autoitscript.com/forum/uploads/monthly_2016_06/charset.png.e79ba3bf1a314a5f54fd267dde463fa3.png) W taki sposób zapisane dane nie dam rady też prawidłowo odczytać ani przez php ani przez mój program. Ten post edytował karcheus 23.06.2016, 12:00:27 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zaraz po połączeniu do mysql, wyślij:
Kod SET NAMES "utf8" COLLATE "utf8_general_ci" I tak jak napisał @emstawicki - upewnij się, że kodowanie samego pliku zapisującego dane do bazy jest poprawne. Czy korzystasz z jakiegoś phpmyadmina i na nim bazujesz odczytując lub zapisując informacje do bazy danych? Takie programy też korzystają z różnych kodowań i należy ustawić tam odpowiednie. Ten post edytował franki01 29.06.2016, 23:33:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:24 |