Avatar billede webage Nybegynder
25. januar 2009 - 22:24 Der er 7 kommentarer og
1 løsning

Tegn bliver konverteret når jeg gemmer dokumenter

Hejsa :)

Jeg har lavet noget programmering i PHP, og det er gået ganske fint lige indtil jeg formaterede min computer i fredags og installerede winXP med SP3.

I får lige historien:

Jeg skulle rette noget på en hjemmeside for en ven, og når det blev uploadet til serveren gav den fejl på linje 1. Linje 1 i en php fil ser jo typisk således ud:

<?php

Og ja, min linje 1 så også sådan ud når man åbnede den i diverse IDE'er eller bare notepad. MEN, efter lang tids søgen fandt jeg at når jeg brugte en funktion "view" i programmet "Total Commander" så ser linje 1 lige pludselig sådan her ud (view funktionen ligner umiddelbart også bare noget lignende notepad, men readonly):

<?php

Se, så kan jeg jo bedre forstå hvorfor der er fejl på linje 1. De filer som jeg ikke har redigeret EFTER jeg formaterede ser ikke sådan ud på linje 1 - de er ser ganske rigige ud med "<?php" som linje 1. Men nu, uanset program (NetBeans, Eclipse, notepad, textpad, notepad++ .....) bliver min linje 1 konverteret til "<?php".

Det skal lige siges, at når jeg bruger programmerne (NetBeans, Eclipse, notepad osv) så ser det rigtigt ud, men når jeg bruger den "view"-funktion fra "Total Commander" så kan jeg se forskel på filerne fra før og efter jeg formaterede (havde vista før)
Avatar billede erikjacobsen Ekspert
25. januar 2009 - 22:27 #1
Det er en http://en.wikipedia.org/wiki/Byte_Order_Mark  - en BOM ;)

PHP kan ikke klare den, endnu. Gem dine filer som utf-8 uden BOM. Det kan man vælge i fornuftige editorer. Hvis du altså har brug for at dine filer er i utf-8
Avatar billede webage Nybegynder
26. januar 2009 - 01:02 #2
Aha! Det virker sku hvis jeg opretter filen med notepad i UTF-8. Tusind tak!!

Lige et tillægsspørgmål: nu skriver du "UTF-8 *uden* BOM". Er det fordi man kan vælge UTF-8 med eller uden BOM, eller er det givent at hvis man bruger UTF-8 så er det uden BOM :)?

Og så et andet lignende problem: når jeg opretter en ny php fil i NetBeans, så laver den ikke de der sjove tegn i linje 1, men tilgengæld laver den om på æÆøØåÅ.

Fx bliver
æ
ø
å

til
æ
ø
Ã¥

Nogen logisk årsag til dette :D?
Avatar billede erikjacobsen Ekspert
26. januar 2009 - 08:36 #3
Der er ingen, der siger at en UTF-8 fil skal starte med en BOM. Du kan læse det i linket.

Det nederste problem ser ud til at være en sammenblanding af tegnsættene UTF-8 og ISO-8859-1.
Avatar billede webage Nybegynder
26. januar 2009 - 12:09 #4
Aaah ja, sorry :-)

Hmm okay - findes der en måde at afgøre hvilke(t) tegnsæt der benyttes i en given fil? :-)
Avatar billede erikjacobsen Ekspert
26. januar 2009 - 12:45 #5
Man kan gætte. Hvis du åbner filen som ANSI (dækker oftest over ISO-8859-1), og ser æøå, så er det nok ISO-8859-1. Ser du æøå er det måske utf-8.
Avatar billede webage Nybegynder
26. januar 2009 - 19:14 #6
Okay, mange tak for dine svar, de var gavnlige :-)

Har fundet ud af at hvis jeg bruger ISO-8859-1 så kommer der ikke nogen BOM og æøå fungerer korrekt :D

Post lige et svar, så får du lige point ;)
Avatar billede erikjacobsen Ekspert
26. januar 2009 - 19:22 #7
Jeg samler slet ikke på point, tak. Svar selv, accepter dit eget svar.
Avatar billede webage Nybegynder
17. april 2009 - 10:28 #8
asfd
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester