30. december 2012 - 12:51Der er
43 kommentarer og 1 løsning
UTF8
fatter det ikke, har læst alt det jeg synes jeg kan, men er stadig lost.
Jeg har nu gennemgået alle mine filer og de er alle UFT8.
teksten ender således "Hold kurset eller konferencen i den lille fiskerby med lystb�dehavn og industrifiskeri. R�dvig er en lille havneby p� ....."
Jeg har kigget på min db. Servers tegnsæt: UTF-8 Unicode (utf8) Servers forbindelsestegnsæt: uft8_danish_ci
Hvis jeg smider uft8_encode på min SQL udtræk så står teksen ordentligt.
jeg her i toppen af min sætning følgende: <?php session_start();
include_once 'languages.php'; include 'db.php'; $language = $_SESSION['lang'];
Håber virkelig der er en der kan hjælpe mig med den, for kan ikke knække den. Har aldrig stødt på dette problem før, har lige færdiggjort en anden side, hvor alt fungerede uden problemer.
Nu fejler alt. Så vil gerne lave det rigtigt. og lære.
Af og til sender php også header information af sted, hvilket kan være i modstrid med det valgte meta-charset. Hvis det er det, som er problemet, kan du prøve at indsætte nedenstående kode øverst i din fil:
"Hvis jeg smider uft8_encode på min SQL udtræk så står teksen ordentligt." >> Jamen, så er dit databaseindhold ikke utf-8. Enten kommer det fra ikke-utf-8 filer - eller også er det gammelt indhold fra før, du satte databasen til at køre utf-8.
Allerede bestående indhold ændres ikke, hvis du ændrer databasens tegnsæt og/eller tabellernes kollationer. Kun nyt indhold, indsat efter ændringen, vil være utf-8
"Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/d/1/b/mela9e.dk/httpd.www/teamstevn/mainframe.php:1) in /customers/d/1/b/mela9e.dk/httpd.www/teamstevn/mainframe.php on line 2"
har lige været i DB og kigger på data, og der stod det korrekt, så loadede jeg siden, der stod det korrekt, men da jeg gemte ændrede den på æøåüäë osv.
Er det når jeg gemmer den er gal? har tjekket at filen er UTF8
Du bliver nødt til at forklare dig lidt tydeligere. Vi andre kan ikke se, hvad du laver, og kan derfor ikke fylde alle de blanke pletter i forklaringerne ud =)
F.eks: "har lige været i DB og kigger på data, og der stod det korrekt, så loadede jeg siden, der stod det korrekt, men da jeg gemte ændrede den på æøåüäë osv.
Er det når jeg gemmer den er gal? har tjekket at filen er UTF8"
Gemmer? Gemmer hvad - hvornår - hvorfor - og hvordan?
Koden står pivåben for SQL-injections - men der er ikke noget i den, som er skyld i tegnsætproblemerne.
Hvis de utf8_encode, du bruger, er nødvendige, så er indholdet i databasen ikke utf-8. Hvor du laver fejl, kan jeg dog ikke afgøre udfra det, du skriver =)
jeg bruger Notepadd++ kan se den normalt gemmen som ANSI, hvad er forskellen på ANSi og UTF8. For jeg har aldrig tidligere rodet med formaterne, og fejlen kom pludselig da jeg ominstallerede min pc og lagde ny version af Notepad++ på og den står standard til UTF8
Hvis du har en dansk version af Notepad++, går du ind under menuen Indstillinger -> Præferencer -> Nyt Dokument/Standardmappe. Her kan du sætte default tegnsæt ved 'Nyt dokument' =)
PS: Du bør gemme som utf-8 uden BOM. Det er tre 'usynlige' tegn i begyndelsen af dokumentet. De kan give problemer ved includes - bl.a. den fejl, du viste i #4 *o)
Jeg tror ikke, jeg kommer videre. Jeg er nødt til at sidde med det selv.
I øvrigt holder din HTML-kode ikke vand. Der er ikke nogen DTD eller HTML-tags. Du har to HEAD- og BODY-tags - men slutter ikke dine BODY-tags.
Et HTML-dokument skal påbegyndes med en DTD, have ét HTML element, ét HEAD element og ét BODY element. Bruger du PHP-includes, må der ikke være HTML-, HEAD- eller BODY-tags i det inkluderede dokument.
Du må heller ikke have LINK elementer i BODY elementet. De skal op i HEAD.
De ting bør du nok først få styr på. Er koden ikke i orden, kan man ikke regne med noget =)
På den pågældende side er Content-Type i HTTP-headers:
Content-Type: text/html
Den bør være med tegnsæt. Jeg ser den engelske udgave, og i teksten: "R�dvig is a small port town on the southern tip Stevns. " er ø-et et ISO-8859-1-tegn for ø (dvs. ANSI), men teksten serveres som UTF-8 pga din <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> (som også bør stå i HTTP-headeren)
når jeg uploader fra en UTF8 fil til DB, så laver den æøå om på serveren, når jeg så loader fra DB til siden, så ser det rigtigt ud. hvorfor ændres det på serveren?
Når du skriver at du læser det "på serveren". Hvad betyder dette så? Databasen er jo blot en række af binære data, så jeg må formode at du trækker dataene ud af databasen med et stykke software, hvor du så oplever at det står forkert. Så måske denne software ikke er indstillet til at vise UTF-8?
Til Kjelsted i #33; Har opsat Notepad++ til at filerne skal være UTF-8 (Uden BOM), har derefter tjekket alle mine filer og de er alle UFT-8 (Uden BOM).
I toppen af alle mine filer står: <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">
Jeg har nogle sider hvor jeg har <FORM>'s og ligger data op i MySQL DB. Der ligger data så forkert "Frühjahr bieten" eller "ForÃ¥rstilbud". Når jeg så laver udtræk fra databasen så vil disse ligge sådan:
Frühjahr = Frühjahr ForÃ¥rstilbud = Forårstilbud
Umiddelbart når jeg kigger på databasen står der: •Servers tegnsæt: UTF-8 Unicode (utf8) •Servers forbindelse: utf8_danish_ci
Jeg har tjekket mine tabeller i databasen og de står til utf8_danish_ci
Jeg forstår slet ikke det med "ligger data op i MySQL DB. Der ligger data så forkert " Du skriver at du indtaster på PHP siden et 'ø' og når du så udskriver fra PHP siden igen står der 'ø'? For så gemmer den vel ikke forkert.
Jeg må nok spørge igen. Når du ser at det er "forkert" i databasen, hvor kigger du så? Du kan jo ikke kigge "direkte" i MySQL databasen uden noget software til dette. Hvis du her benytter PHPMyAdmin er det blot fordi PHPMyAdmin henter dataene forkert. PHPMyAdmin laver jo blot en MySQL forespørgsel på samme måde som hvis du selv laver en forespørgsel i PHP.
Ligger data op, en en FORM hvor jeg laver en SQL UPDATE eller INSERT.
I formen skriver jeg Ø og på siden viser den Ø, men i databasen står der Ã¥, burder der ikke også stå Ø her? eller tager jeg fejl, har altid haft alm. tekst i DB også.
benytter PHPMYADMIN..... men hvordan får jeg den til at vise det korrekt?
#37 bliver svært at vise siderne hvor det går galt, da data på siderne står rigtigt, det er data i PHPMYADMIN der står forkert kan jeg så forstå. men min tvivl er så om hvordan jeg retter dette.
character set client latin1 (Sessionsværdi) utf8 character set connection latin1 (Sessionsværdi) utf8 character set database latin1 character set filesystem binary character set results latin1 (Sessionsværdi) utf8 character set server latin1 character set system utf8 collation connection latin1_swedish_ci (Sessionsværdi) utf8_danish_ci collation database latin1_swedish_ci collation server latin1_swedish_ci
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.