logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Polskie znaki w php. Skrypt wyświetlający zawartość tabeli.

suromarek 27 Maj 2011 00:30 5853 6
REKLAMA
  • #1 9548410
    suromarek
    Poziom 10  
    Posty: 51
    Ocena: 3
    napisałem skrypt wyświetlający tabelę muzycy wszystko działa ok tylko zamiast polskich znaków ł,ć,ś itd występuje litera ? dla przykładu słowo
    -> W skrypcie php mam ustawione takie kodowanie
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    -> Natiomiast w phpmyadmin tabela muzycy :
    - mechanizm składowania InnoDB
    - metoda porównywania napisów utf8_polish_ci
  • REKLAMA
  • REKLAMA
  • REKLAMA
  • #4 9548872
    suromarek
    Poziom 10  
    Posty: 51
    Ocena: 3
    
    tak mam ustawione w pliku php
    <html>
      <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-4">
    

    W zapytaniu na stronie phpmyadmin wybrałem sql i wykonałem zapytanie zamiast słowa nazwa_bazy wpisałem swoją bazę i w kolejnym wpisałem swoją tabelę zapytanie wykonało się prawidłowo
           ALTER DATABASE `nazwa_bazy` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
    
    ALTER TABLE `nazwa_tabeli` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
    

    W przeglądarce firefox jak wybiorę zestaw znaków to kodowanie na wyświetlenym pliku mam ustawione utf-8

    W bazie mam wpisane słowo Górniak a wyświela mi
    Co może być jeszcze nie tak ?
  • REKLAMA
  • #5 9553315
    loganek2
    Poziom 17  
    Posty: 103
    Pomógł: 29
    Ocena: 4
    a spróbuj w bazie ustawić utf8_polish_ci
  • #6 9555372
    Doktor_No
    Poziom 12  
    Posty: 58
    Pomógł: 2
    Ocena: 3
    suromarek napisał:
    
    tak mam ustawione w pliku php
    <html>
      <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-4">
    



    Popraw UTF-4 na UTF-8 w kodzie powyżej.

    To raz. Dwa, deklaracja kodowania w nagłówku HTTP ma absolutny priorytet, więc ustal kodowanie w PHP tą metodą (w pierwszej linijce kodu):

    Kod: PHP
    Zaloguj się, aby zobaczyć kod


    Być może serwer jest źle skonfigurowany. Tu masz wszystko wyjaśnione:

    http://www.w3.org/International/O-HTTP-charset
  • #7 9555436
    SaraniS
    Poziom 26  
    Posty: 745
    Pomógł: 78
    Ocena: 26
    Witam
    Często jest problem przy edycji w PhpMyAdmin - wpisując w nim polskie diakrytyki, na stronie dostaje się "krzaczki". Osobiście w przypadku takich opornych baz danych stosuję obejście - dane edytuję bądź to z adminpanelu na stronie (trochę więcej kodowania, bo ten adminpanel trzeba napisać najpierw), albo ściągam dane na dysk i na dysku obrabiam a potem uploaduję z powrotem do bazy.
    Podejrzewam że problem będzie w samym PhpMyAdminie, nawet mimo ustawienia go na UTF-8, zapisuje do bazy w innym kodowaniu.
    Pozdrawiam

Podsumowanie tematu

✨ Użytkownik napotkał problem z wyświetlaniem polskich znaków diakrytycznych w skrypcie PHP, gdzie zamiast poprawnych liter pojawiają się znaki zapytania. Wskazano, że w kodzie HTML ustawione jest kodowanie UTF-8, a w bazie danych MySQL tabela używa mechanizmu InnoDB oraz porównywania utf8_polish_ci. Użytkownicy sugerują kilka rozwiązań, w tym dodanie polecenia "SET NAMES utf8" oraz poprawienie kodowania w nagłówku HTTP na "header('Content-type: text/html; charset=utf-8');". Zauważono również, że problemy mogą wynikać z nieprawidłowej konfiguracji PhpMyAdmin, który może nie zapisywać danych w odpowiednim kodowaniu.
Wygenerowane przez model językowy.
REKLAMA