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 Mesaje: 4343
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 Mesaje: 1
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