xx- Skrevet 3. mars 2015 Del Skrevet 3. mars 2015 Lager en nettsiden hvor man kan legge inn data, trykke på knapp og så lagres dette i databasen.Skriver også ut en beskjed om at spørsmål er lagret i databasen. Takler ikke æøå, så blir slik: "Nytt sp\u00f8rsm\u00e5l er lagret i databasen." Er ny i dette. Googlet masse og prøvd følgende 3 øverst i php-filen: <?php header("Content-Type: text/html; charset=ISO-8859-1"); //header('Content-Type: text/html; charset=UTF-8');//mb_internal_encoding("UTF-8"); include 'db.php'; I HTML-filen, for nettsiden, står det<!DOCTYPE html><html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7,IE=edge,chrome=1" /> Dette har fikset æøå-problemer ellers på nettsiden. Har også lest at det kan ha noe med "include 'db.php'-filen".Noen som kan hjelpe meg? Lenke til kommentar
Runar Skrevet 3. mars 2015 Del Skrevet 3. mars 2015 Ta en titt på denne tråden, som faktisk ligger i samme kategori som du har postet i: https://www.diskusjon.no/index.php?showtopic=730921 Lenke til kommentar
Enthroner Skrevet 3. mars 2015 Del Skrevet 3. mars 2015 Personlig anser jeg det som best praksis å gjøre om slike symboler til HTML Entities slik at man kan lese innholdet med standard UTF-8 web teknologi (f.eks fra små mikrokontrollere, eller web crawlers). Lenke til kommentar
xx- Skrevet 3. mars 2015 Forfatter Del Skrevet 3. mars 2015 Har lest tråden til Runar flere ganger, men blir ikke klok. Når jeg endrer på tegnkoding fra unicode til vestlig så får æøå i html-filen rare tegn. Men dette har ingen innvirkning på knappen for å få data til databasen. Tegna er ødelagte alltid der.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> er lagt inn i header som tråden anbefaler.Går til pkt 2. Bruker statisk og dynamisk data, altså ja: - Ja:Er du sikker på at begge kildene bruker samme tegnsett?Statiske data, som HTML lagret rett i en PHP-fil, eller f.eks. en include()/require() er ofte laget i en teksteditor.Når man lagrer filene, så er det også her viktig å tenke på tegnsett. Til og med Notepad lar deg velge tegnsett (ANSI og tre varianter av unicode, der UTF-8 er den mest brukbare).(include()/require() kan selvsagt også brukes til dynamiske data)Pass altså på å lagre statisk innhold i PHP-/tekstfiler med rett tegnsett i forhold til det som står nevnt i punkt 1. Støtter ikke din editor dette, så burde du seriøst vurdere å bytte. Hvordan kan jeg sjekke dette? Bruker Aptana Studio 3 Lenke til kommentar
Crowly Skrevet 4. mars 2015 Del Skrevet 4. mars 2015 Har du sjekket tegnsettet i databasen (tabell feltene)? Og hvilket tegnsett tilkoblingen til databasen er konfigurert med? Du må også ha kontroll på hvilket tegnsett input data som skal lagres i databasen har, og konvertere til databasens tegnsett om nødvendig. utf8_encode() og utf8_decode() for å konvertere mellom utf8 og iso-8859-1. iconv() for andre tegnsett OSet støtter, f.eks. på linux bruk "iconv -l" for oversikt. Notepad++ er en grei editor for å sjekke filens tegnsett, men har dårlig støtte for eldre tegnsett som CP850 o.l. Lenke til kommentar
xx- Skrevet 17. mars 2015 Forfatter Del Skrevet 17. mars 2015 Har endret alle tegnsett i tabellene i databasen til utf8_swedish_ci, men hjalp ikke.. Lenke til kommentar
Yawa Skrevet 17. mars 2015 Del Skrevet 17. mars 2015 Riktig tegnsett for norge, med utf8, er utf8_danish_ci da norsk og dansk behandles likt. Det blir ikke den svenske varianten. utf8_unicode_, og utf8_general_, kan også benyttes. Men det kommer helt ann på hvor nøyaktig/viktig sorteringsrekkefølgen er på dataen du skal fremvise. Det er også viktig at database-tilkoblingen din kommuniserer med riktig tegnset. Om du benytter PDO, så kan du gjøre følgende: (Merk charset=utf8, og PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8') new PDO('mysql:host=localhost;dbname=databasenavn;charset=utf8', [bruker], [passord], array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8')); Videre er det viktig at databasen, eller tabellen hvertfall, har samme tegnsett. Forøvrig kan du sette denne meta-taggen i html-headeren slik at nettleseren leser siden med riktig tegnsett: <meta charset="utf-8"> Den kan forøvrig utelates om du legger til følgende i .htaccess-filen, og er sikker på at siden ikke overstyres på noe sett og vis i etterkant: AddDefaultCharset utf-8 Det kan også være lurt å sørge for at den fysiske filen lagres med samme/riktig tegnset. Det gjør du ved å gå til instillingene i kode-behandleren din, og sørge for at filer lagres med utf8. Evt. om du gjør dette ved lagring av hver fil. Kommer ann på programmet. Til slutt er det viktig at .php-filer behandles med forventet tegnsett. Dette kan du også gjøre i .htaccess-filen din: <IfModule mod_mime.c> AddCharset utf-8 .php </IfModule> ved å legge til flere fil-endelser, kan du være sikker på at filene serveres med riktig tegnsett... <IfModule mod_mime.c> AddCharset utf-8 .php .html .css .js .json .xml </IfModule> Om du velger å gå for annet tegnsett, så er fremgangsmåten fortsatt den samme... Lenke til kommentar
mysjkin Skrevet 17. mars 2015 Del Skrevet 17. mars 2015 Min erfaring er at du må passe på: * Tegnkoding i database * Hvilken tegnkoding du sier at du har i html -headeren * og når ting virkelig er kranglete - hvilken tegnkoding du har lagret php-filen i... pass på at ALT er utf-8 - eller en eller annen annen koding om du skulle foretrekke det, (eller om du har et sterkt ønske om å gjøre ting så vanskelig som mulig, bruk reencoding av tegnsettet på riktige steder .. :-P ) Lenke til kommentar
xx- Skrevet 18. mars 2015 Forfatter Del Skrevet 18. mars 2015 Beklager, men jeg får dette bare ikke til... htaccess-filen, er det htaccess.html? Lå 16 filer med det navnet under MAMP-mappa.Har endret alle tabeller og kolenner til utf8_danish_ci. Se vedlagte bilder av hvordan det er lagt inn i databasen, htmlfilen, phpfilen, samt nettsiden og hvordan ord med æøå lagres i databasen. Hva kan jeg gjøre mer? Utrolig takknemlig for alle svar!! Lenke til kommentar
Yawa Skrevet 18. mars 2015 Del Skrevet 18. mars 2015 Du kan bytte til kun <meta charset="utf-8"> i index.html-fila di. htaccess fila skal ikke ha noen endelse. filen skal hete .htaccess dvs. at htaccess er filendelsen på filen, uten et filnavn. I mange filsystemer er det ikke mulig å opprette denne direkte, så derfor heter den .html, eller noe annet, til å begynne med. For at den skal fungere må du ta bort .html på slutten, og plassere et punktum helt i begynnelsen forran htaccess. Det kan hende den da blir usynlig, og derfor kan det være nødvendig at du oppretter denne direkte på serveren... Ta å høyreklikk i vinduet på nettleseren din, når du er på siden din, og velg "vis sideinfo" (eller noe i den dur). I vinduet du da får opp, vil du kunne se hva slags tegnsett siden din benyttes ("tegnkoding" står det hos meg). Lenke til kommentar
xx- Skrevet 19. mars 2015 Forfatter Del Skrevet 19. mars 2015 (endret) Da ligger kun <meta charset="utf-8"> i html-filen.Tegnkoding i nettleseren står på Unicode.Har opprettet en fil 1.htaccess og lagt inn: AddDefaultCharset utf-8 <IfModule mod_mime.c> AddCharset utf-8 .php .html .css .js .json .xml </IfModule> Restartet MAMP, ingen endring.. Endret 19. mars 2015 av xx Lenke til kommentar
Yawa Skrevet 19. mars 2015 Del Skrevet 19. mars 2015 (endret) Min nettleser står til "Vestlig". Men usikker på om det skal ha noen direkte betyning i ditt tilfelle.. Din problemstilling er snodig syns jeg. Har du forsøkt å åpne siden i andre nettlesere? Evt. på en annen maskin? Du kan forsøke følgende: Kopier denne sql-koden inn til databaseadministratoren din (eks. phpMyAdmin), og kjør den i databasen du bruker/er koblet til. -- -- Tabellstruktur for tabell `area_counties` -- CREATE TABLE IF NOT EXISTS `area_counties` ( `iso` varchar(41) COLLATE utf8_danish_ci NOT NULL, `name` varchar(71) COLLATE utf8_danish_ci DEFAULT NULL, `country_iso` varchar(5) COLLATE utf8_danish_ci NOT NULL, PRIMARY KEY (`iso`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci COMMENT='last updatet 20120412'; -- -- Dataark for tabell `area_counties` -- INSERT INTO `area_counties` (`iso`, `name`, `country_iso`) VALUES ('01', 'Østfold', '578'), ('02', 'Akershus', '578'), ('03', 'Oslo', '578'), ('04', 'Hedmark', '578'), ('05', 'Oppland', '578'), ('06', 'Buskerud', '578'), ('07', 'Vestfold', '578'), ('08', 'Telemark', '578'), ('09', 'Aust-Agder', '578'), ('10', 'Vest-Agder', '578'), ('11', 'Rogaland', '578'), ('12', 'Hordaland', '578'), ('14', 'Sogn og Fjordane', '578'), ('15', 'Møre og Romsdal', '578'), ('16', 'Sør-Trøndelag', '578'), ('17', 'Nord-Trøndelag', '578'), ('18', 'Nordland', '578'), ('19', 'Troms', '578'), ('20', 'Finnmark', '578'), ('21', 'Svalbard', '578'), ('22', 'Jan Mayen', '578'), ('23', 'Kontinentalsokkelen', '578'); Opprett et nytt .php dokument, og lim inn følgende: (evt. laste ned vedlagt xx.php fil) <?php # koble til databasen med PDO try{ /** * Legg merke til at jeg har lagt til "charset=utf8" like etter databasenavnet. * huske å endre kriterier til dine detaljer */ $dbh = new PDO('mysql:host=localhost;dbname=databasenavn;charset=utf8', 'brukernavn', 'brukerpassord'); } catch(PDOException $e) { // håndter feil // echo $e->getMessage(); } // # foretar en spørring etter data, og plasserer dette i et array $counties = $dbh->query('SELECT * FROM area_counties')->fetchAll(); // ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>xx test</title> </head> <body> <h1>Fylker i Norge</h1> <p>Noen av fylkene inneholder æ, ø, og å. Disse tegnene skal vises uten problem da dette dokumentet har utf8 tegnsett.<br> Databasetabellen disse fylkene ligger lagret har også utf8 som tegnset, samt sorteringen på tegnsettet er satt til utf8_danish_ci.<br> Tilkoblingen er også satt til å kommunisere med utf8.</p> <table> <?php foreach($counties as $county): ?> <tr><td><?=$county['iso']?></td><td><?=$county['name']?></td></tr> <?php endforeach; // counties ?> </table> </body> </html> Trur det skal være alt. Lagre dokumentet på serveren din (samma mappe som du har index.html). Nå skal du kunne åpne dette dokumentet i din nettleser, og se om tegn og bokstaver vises korrekt. Har lagt ved en skjermdump på hvordan det ser ut hos meg.. xx.php Endret 19. mars 2015 av Yawa Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå