|  Tegnsæt
 
 
 UTF-8
 Efter adskillige års turbulens omkring tegnsæt (først et fælles, så mange sideordnede og nu igen et) er UTF-8 det første egentlige verdensomspændende tegnsæt. Derved lettes / muliggøres global kommunikation uden sorte firkanter i teksten. 
 UTF-8 har været til rådighed og i stigende grad anvendt siden medio 199x. Omkring årsskiftet 2012 - 2013 begyndte W3 ved HTML-validering at validere mod UTF-8. Det vil herefter være svært at argumentere for at anvende iso-8859-1 eller iso-8859-15 i nye dansksprogede hjemmesider. 
 UTF-8 er delt op i ca. 220 blokke (Unicode Blocks) hver med fra ca. 20 til 256 tegn. De fleste blokke indeholder tegn til et specifikt sprog eller gruppe af sprog med ligheder i tegnsæt. Dansk er indeholdt i den første blok - Basic Latin. 
 En halv snes blokke indeholder "ikoner" såsom valuta symboler, pile og andet. 
 
|  | Omfattende oversigt over blokke og de enkelte tegn deri med krydsreference til fonte og hvilke fonte det enkelte tegn indgår i, samt visning af hvordan det skrives som enkelttegn i 11 programmeringssprog etc.. |  |  | Forholdsvis enkel (blokvis) oversigt over UTF-8 tegn. |  |  | W3 "encoding" arb.gruppe |  |  | Oversigt over tegn, der kan angives i HTML ved deres navn. Kræver skærm med meget stor opløsning eller skift til JSON fil. |  
 
 For at kunne anvende UTF-tegnsættet skal både HTML-sider og CSS-filer helst fortælle det til browseren. Det gøres således: 
 
| I | indsættes | Bemærkninger | 
|---|
 | HTML-sider | <head> <meta charset="UTF-8" />
 | Bør indsættes umiddelbart efter <HTML>-taggen. Browserne leder dog vistnok i de første 1024 kar. før de begynder egentlig indlæsning af siden. |  | CSS-filer | @charset "UTF-8"; | Det er vigtigt at mellemrummet mellem charset og " er på 1 kar. |  
 
 ASCIIASCII er det oprindelige (amerikanske) tegnsæt til computere. Det indgår i mange andre tegnsæt med de samme / oprindelige værdier. Det består af tre hoveddele: 
 
| 0 - 31 | Styrekarakterer |  | 32 - 127 | Printbare karakterer. Indeholder bl.a. a-z, A-Z og 0-9 |  | 128- 255 | "Udvidet" ASCII |  
 En oversigt kan ses her:  
 
 OpsætningNår tegnsæt til et site er bestemt (in casu UTF-8) skal der foretages opsætning ganske mange steder for at være helt sikker på et godt resiltat: 
 EditorDet sikres, at den valgte editor er sat op til UTF-8. 
 CSSAllerøverst (fra pos. 1 på linie 1) i CSS-filer indsættes: | @charset "utf-8"; /* CSS Document */
 | 
 
 HTMLØverst på alle HTML-sider (oftest via 'include') indsættes: | <head> <meta content= "charset=UTF-8">
 | 
 
 PHPI PHP skal php.ini være sat op med: | ; PHP's default character set is set to UTF-8. ; http://php.net/default-charset
 default_charset = "UTF-8"
 | 
 
 Opkobling til MySQLRutinen / includen til opkobling til MySQL ('db_connect') bør også have en reference til det anvendte segnsæt: Hele rutinen kan se sådan ud: | <?php $host      =  "localhost";
 $user      =  "root";
 $password  =  "";  // På Mac skal password typisk være "root" også
 $database  =  "projektnavn";
 // Opret forbindelse til databasen
 $db_link = mysqli_connect ($host, $user, $password, $database) or die (mysqli_error());
 // Følgende linje sørger for, at du kan udskrive ÆØÅ korrekt
 mysqli_query ($db_link, "SET NAMES 'utf8'");
 ?>
 | 
 
 MySQLI MySQL skal både den enkelte database, dens tabeller og disses felter sættes op med tegnsæt 
 Database | Databasenavn | Tegnsæt(sortering) utf8_danish_ci | 
 
 Tabel | Tegnsæt (sortering): utf8_danish_ci | 
 
 Felter 
 $_POSTVed indlæsning fra form til variabel med $_POST skal bruges: | $variabelnavn = htmlspecialchars (trim($_POST['feltnavn']),ENT_QUOTES, "utf-8"); | 
 trim() fjerner evt. foran- og efterstillede blanke tegn. 
 htlmspcialcahracters() konverterer evt. forekomster i tekster af de 5 tegn: >, <, ', " og ? til <...-tegn. Dette for at undgå at teksterne forvirrer PHP der også bruger disse tegn. 
 En 'søster' til htlmspcialcahracters - htmlentities - må ikke benyttes.Udover de 5 ovennævnte tegn konverterer den mindst et par hundrede andre tegn - bl.a æ, ø, å, Æ, Ø og Å.
 æ, ø og å bliver godt nok skrevet korrekt ud med 'echo', men ved sortering med f.eks. 'order by xxx asc' bliver de vist før 'a'.
 
  
         
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 |