Afisare caractere cu diacritice din baza de date

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cipriand
Mesaje: 18

Afisare caractere cu diacritice din baza de date

daca introduc in baza de date texte cu caractere

Cod: Selectaţi tot

â ă ş
in php pe pagina le vede patratele. Ce-i de facut?

MarPlo
1. Baza de date sa fie: utf8_general_ci
2. Tabelele sa fie create adaugand si instructiunea: CHARACTER SET utf8 COLLATE utf8_general_ci
3a. La conectare cu MySQLi se adauga si setarea de utf-8

Cod: Selectaţi tot

$conn = new mysqli($host, $user, $password, $db_name);
$conn->query('SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8";');
3b. Sau daca folosesti PDO:

Cod: Selectaţi tot

$conn = new PDO('mysql:host='. $host .'; dbname='. $db_name, $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec('SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8";');
4. Script-ul php sa aibe adaugat (inainte de afsare ceva):

Cod: Selectaţi tot

header('Content-type: text/html; charset=utf-8');
5. Pagina care afiseaza datele sa aibe la HTML, in zona HEAD:

Cod: Selectaţi tot

<meta charset="utf-8" />
- Daca sunt facute toate acestea, ar trebui sa afiseze corect caractere cu diacritice si accent.
Eventual, sa verifici daca in baza de date sunt cum trebuie.

dianagaby2017
Vad ca postarea este mai veche. O sa scriu totusi o solutie, care mi-a mers mie, in caz ca mai intra cineva cu aceeasi intrebare.


1). In pagina PHP din care se introduce textul cu diacritice in baza de date:

Cod: Selectaţi tot

$titlu = mb_convert_encoding($titlu,'HTML-ENTITIES','utf-8');
/* pentru introducere 'titlu' in BD cu DIACRITICE*/

2). In pagina in care se va afisa textul cu diacritice, trebuie inclus:

Cod: Selectaţi tot

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

........................
</head>
............................................
3). Baza de date sa fie:

la General settings: Server connection collation: utf8mb4_unicode_ci

Subiecte similare