diakritische tekens als ? weergegeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- DHU -

- DHU -

14/07/2019 23:54:26
Quote Anchor link
ben niets aan het repareren... deze tekens zijn ontstaan toen ik collatie heb ik gewijzigd naar utf8mb4_unicode_ci

wanneer ik de code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    header ('Content-type: text/html; charset=utf8mb4_unicode_ci');
?>


weer weghaal verdwijnen ook die tekentjes weer maar heb ik mijn ? weer terug.

Het maakt ook niet uit of ik de colltie van utf8mb4_unicode_ci naar utf8mb4_generaal_ci... effect is hetzelfde
 
PHP hulp

PHP hulp

29/03/2024 05:46:21
 
- Ariën  -
Beheerder

- Ariën -

15/07/2019 00:39:28
Quote Anchor link
Om Thomas nog even te quoten voor de duidelijkheid:

Thomas van den Heuvel op 14/07/2019 19:23:07:
Collatie is niet hetzelfde als character encoding. (ook charset)

Dus laat die charset voor PHP lekker zoals het UTF-8 is.
Gewijzigd op 15/07/2019 00:44:09 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

15/07/2019 01:02:43
Quote Anchor link
Lees mijn vorige uitgebreide reactie (interne link) (nogmaals).

De data in je database heeft waarschijnlijk mankementen.
Gewijzigd op 15/07/2019 01:03:23 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

15/07/2019 01:16:31
Quote Anchor link
Thomas van den Heuvel op 14/07/2019 23:11:05:
- Ariën - op 14/07/2019 21:43:17:
Met een ? vermoed ik dat je collatie niet klopt, en dat je een teken gebruikt die deze collatie niet kent. Gebruik eens: utf8mb4_general_ci

Nee, er is echt ergens iets mis met de data zelf, of hoe je deze benadert, of allebei. Dit heeft niets met collation te maken.

Als ik zo lees was dat toch wel de oorzaak. Maar dan ga ik niet van een geruit vraagteken uit. Ik meen dat je dat enige tijd geleden nog zo iets hebt gezegd in een topic hier. Het probleem met de vraagtekens die de topicstarter omschrijft vond alleen in MySQL plaats.
Gewijzigd op 15/07/2019 01:19:50 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

15/07/2019 02:10:03
Quote Anchor link
Mja, en dat heeft van doen met de character encoding. Collation heeft op geen enkele manier invloed op (on)juiste weergave van tekst. Collation houdt zich enkel bezig met het vergelijken en sorteren van teksten.

De beschikbare/geldige/toepasbare collations hangen overigens van de character encoding af. Je kunt uiteraard geen collation gebruiken die niet aansluit op je character encoding... Dat lijkt mij duidelijk.

EDIT: okay laten we even van aanpak veranderen want dit is weer zo'n vraag waarbij er heeeeeeeeeeeelemaal aan het einde iets misgaat, terwijl er nog tig tussenstappen zijn. Tijd om het een en ander uit te gaan sluiten.

Gebruik de volgende code om het stuk tekst met kuren op te hoesten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
// debugging modus
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');

// hulpfunctie voor escapen html-functionaliteit
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


// je zou kunnen volstaan met de metatag, maar nogmaals, ten overvloede
header('Content-Type: text/html; charset=UTF-8');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>UTF-8 test</title>
</head>

<body><?php
$db
= new mysqli('host', 'username', 'password', 'database');
$db->set_charset('utf8');

$res = $db->query('haal hier de bewuste tekst op');
$row = $res->fetch_assoc();

// geef de tekst als platte tekst weer
echo escape($row['kolomnaam']);
?>
[end]</body>
</html>

NB deze snippet zou je voor meer debugging-werkzaamheden kunnen gebruiken...

Mocht de tekst niet goed worden weergegeven dan zul je de oorzaak en oplossing in de database moeten zoeken. Er is dan eerst een verdere analyse nodig van de tabelstructuur en de data in deze tabellen om zinnige uitspraken te kunnen doen over wat er aan de hand is.
Gewijzigd op 15/07/2019 15:26:08 door Thomas van den Heuvel
 
- DHU -

- DHU -

10/08/2019 08:07:38
Quote Anchor link
Thomas van den Heuvel op 15/07/2019 02:10:03:
Mja, en dat heeft van doen met de character encoding. Collation heeft op geen enkele manier invloed op (on)juiste weergave van tekst. Collation houdt zich enkel bezig met het vergelijken en sorteren van teksten.

De beschikbare/geldige/toepasbare collations hangen overigens van de character encoding af. Je kunt uiteraard geen collation gebruiken die niet aansluit op je character encoding... Dat lijkt mij duidelijk.

EDIT: okay laten we even van aanpak veranderen want dit is weer zo'n vraag waarbij er heeeeeeeeeeeelemaal aan het einde iets misgaat, terwijl er nog tig tussenstappen zijn. Tijd om het een en ander uit te gaan sluiten.

Gebruik de volgende code om het stuk tekst met kuren op te hoesten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
// debugging modus
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');

// hulpfunctie voor escapen html-functionaliteit
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


// je zou kunnen volstaan met de metatag, maar nogmaals, ten overvloede
header('Content-Type: text/html; charset=UTF-8');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>UTF-8 test</title>
</head>

<body><?php
$db
= new mysqli('host', 'username', 'password', 'database');
$db->set_charset('utf8');

$res = $db->query('haal hier de bewuste tekst op');
$row = $res->fetch_assoc();

// geef de tekst als platte tekst weer
echo escape($row['kolomnaam']);
?>
[end]</body>
</html>

NB deze snippet zou je voor meer debugging-werkzaamheden kunnen gebruiken...

Mocht de tekst niet goed worden weergegeven dan zul je de oorzaak en oplossing in de database moeten zoeken. Er is dan eerst een verdere analyse nodig van de tabelstructuur en de data in deze tabellen om zinnige uitspraken te kunnen doen over wat er aan de hand is.




Sorry voor de late reactie maar was met vakantie.. wilde dit weer oppakken.... mbv deze snippet... pats boem tjakka... heb ik dit kunnen oplossen....

Thanks Thomas.....
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.