Adaugare diacritice in MySQL
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
cadou
- Mesaje:328
Adaugare diacritice in MySQL
In cererea catre baza de date pentru a afisa rezultatele si pentru a adauga in baza de date am si linia de cod:
In pagina web imi afiseaza cu diacritice rezultatele, dar in baza de date nu adauga diacriticele cum trebuie.
De exemplu:
in formularul de adaugare scriu : am reuşit sa adaug
in pagina de afisare apare cu diacritice
dar in baza de date apare asa: am reuÅŸit mah
MarPlo
Mesaje:4343
Salut
In scriptul PHP trebuie sa ai urmatorul cod inainte de adaugare date in mysql:
Cod: Selectaţi tot
header('Content-Type: text/html; charset=utf-8');
Si incearca acest cod pt. setare UTF-8 la conexiunea cu mysql:
Cod: Selectaţi tot
mysql_set_charset("SET character_set_results='utf8', character_set_client='utf8', character_set_connection='utf8', character_set_database='utf8', character_set_server='utf8'");
- Totusi,
mysql_set_charset() e anulat in noile versiuni de PHP, si se recomanda PDO sau MySQLi, cu metoda:
Cod: Selectaţi tot
$conn->query('SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8";');
cadou
Mesaje:328
Multumesc. Am folosit ultima varianta pentru PDO
Edit:
Exista vreo diferenta intre utf8 si utf-8 ?
Vad ca ultimul cod merge, dar cateodata da rateuri, cateodata afiseaza in pagina fara diacritice si cu semnul ?
MarPlo
Mesaje:4343
Sintaxa pentru setare tip caractere in myql e 'utf8' (fara liniuta).
Instructiunea SQL urmatoare se aplica la toate conexiunile la mysql (inclusiv pentru preluare date).
Cod: Selectaţi tot
$conn->query('SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8";');
- Daca in mysql caracterele sunt adaugate corect, problema e undeva la partea de afisare.
Codul php sa aibe acest header():
Cod: Selectaţi tot
header('Content-Type: text/html; charset=utf-8');
Iar in zona <head> din html (pentru HTML5) acest meta:
cadou
Mesaje:328
Am acel header iar in head am acel meta. In baza de date apare corect cu diacritice ...
am meta de 2 feluri:
Cod: Selectaţi tot
<meta charset="utf-8" />
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
Am incercat pe rand cu ele, am incercat si ambele deodata, aceeasi problema....
MarPlo
Mesaje:4343
Problema poate fi de la codul php.
Nu stiu cauza, dar poti afla verificand treptat cu 'echo' in php datele de la preluare din mysql pana la afisare.
- Poti sa incerci sa adaugi urmatorul cod in .htaccess. Nu stiu daca functioneaza, teoretic seteaza charset utf-8 pentru toate fisierele.
Sau pentru anumite tipuri de extensie:
Subiecte similare
- Adaugare orar zilele saptamanii in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
Am o baza de date cu toate locatiile
location_id | name |address |telephone | open
Si un formular prin care incarc datele in bd....
Ultimul mesaj
Treaba cu adaugare json in mysql e simpla, se rezuma la adaugarea unui sir care contine ghilimele duble.
Problema la tine e ca acele ghilimele sunt...