|
| æ ø å | Dataene ligger rigtigt. De kan både vises med 'echo' og der kan foretages SELECT / ORDER BY på dem |
| æ ø å | Dataene ligger forkert. De kan vises korrekt med 'echo', men der kan ikke foretages SELECT / ORDER BY på dem. |
Der kan godt være 'forkerte' tegn i databasen selvom den er sat rigtigt op. MySQL synes meget åben for at modtage alt hvad den bliver præsenteret for - men det er ikke sikkert, at den kan bruge det.
I databasen anvendes (via phpMyAdmin) følgeende opsætninger:
| Opret ny database | Tegnsæt(sortering) | utf8_danish_ci |
| Opret ny tabel | Tegnsæt(sortering) | utf8_danish_ci |
| Opret nyt felt i tabel | Tegnsæt(sortering) | utf8_danish_ci |
Filen, der etablerer forbindelse til DB-serveren, skal indeholde de to funktioner $mysqli_query() og mysqli_set_charset():
|
<?php $host = "localhost"; $user = "root"; $password = ""; // På Mac skal password typisk være "root" også $database = "xxxxxxxxx"; // Opret forbindelse til databasen $db_link = mysqli_connect ($host, $user, $password, $database) or die (mysqli_error()); // Sørger for, at du kan udskrive ÆØÅ korrekt mysqli_query ($db_link, "SET NAMES utf8"); // Sætter default kar.sæt der anvendes ved overførsel af data DB-serveren mysqli_set_charset($db_link, "utf8"); ?> |
I forbindelse med indlæsning fra $_POST anvendes 'ENT_QUOTES' til at ændre en række tegn til '&...;'. Derved opnås at PHP ikke 'tager fejl'.
I HEAD-delen af alle HTML-filer skal indsættes:
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> eller <meta content="charset=UTF-8"> |
Det kan afhænge af den anvendte editor, hvilken af de to der skal benyttes. Se iøvrigt 'Notepad++' nedenfor.
Med Notepad++ kan kontrolleres, om den anvendte editor producerer 'det rette UTF-8 format':
|
Notepad++ Format Konverter til UTF-8 (uden BOM) |
Hvis konverteringen medfører at filen opdateres og skal gemmes, skal den øverste / lange version af meta-dataene anvendes.
Når Notepad++ foretager konvertering, er det formentlig udtryk for, at filen har været kodet i et andet format end UTF-8 - formentligt 'UTF-8-BOM' også kaldet 'UTF-8N'.
Ved anvendelse af NetBeans som editor synes det nødvendigt at anvende den 'lange' version af metadataene. Notepad++ foretager da ingen konvertering, og æøå fra HTML-tekst vises ikke som krummelurer.
CSS-filer bør på deres allerførste linie have anført:
| @charset "UTF-8"; |
Kompenserer for evt. manglende angivelse af meta-data i HTML-filernes HEAD-del.