Avatar billede avest Nybegynder
24. august 2004 - 09:06 Der er 9 kommentarer

danske tegn i filnavn

http://www.avz.dk/resources/tabs/filliste.php?var1=/danske/CV

Jeg har lavet en lille side som viser en liste over de filer der ligger i en underliggende mappe.

Det virkede fint på min Win+Apache server, men nu er den flyttet ud til min udbyder som bruger linux og så giver det problemer.

Hvis der er danske tegn i filnavnet virker skidtet ikke.

Hvordan slipper jeg uden om dette ?
Avatar billede sone Nybegynder
24. august 2004 - 09:25 #1
Brug URLencode hvis du har specialtegn, mellemrum osv. som en del af et filnavn.
Avatar billede taskmgr Nybegynder
24. august 2004 - 09:29 #2
Du kan ikke kalde filer med specieltegn (såsom æøå), da det simpelthen er forkert syntax på linux.

Dvs. - omdøb dine filer :) å = aa, ø = oe... osv
Avatar billede avest Nybegynder
24. august 2004 - 09:41 #3
URLencode kunne jeg ikke få til at virke. Den satte +-tegn istedet for mellemrum, men æøå var stadig æøå. Men det betød bare at de filnavne uden æøå som før virkede ikke længere virkede.
Avatar billede avest Nybegynder
24. august 2004 - 09:44 #4
MIt lille forsøg med urlencode

    $urlfile=urlencode($file);
        print "<a target='_blank' href=\"./$result/$urlfile\">$file</a><br>\n";
Avatar billede dennismp Nybegynder
24. august 2004 - 10:13 #5
taskmgr: linux kan snildt klare æøå og alle mulige andre tegn (Så-som tabs, backspace)

Din URLencode virker nok fint nok. Problemet ser ud til at være + - de bliver ikke lavet om til space af en eller anden årsag. Det burde virke (det gjorde det på min - men det hjælper dig jo ikke) :)

prøv:

$urlfile=str_replace('+','%20',urlencode($file));
Avatar billede taskmgr Nybegynder
24. august 2004 - 10:26 #6
Ok, det var jeg så ikke klar over. Men kan det så ikke bedre betale sig at bruge rawurlencode() i stedet?
Avatar billede avest Nybegynder
24. august 2004 - 10:29 #7
Jep, det kan det. Nu lader det til at virke.
Avatar billede dennismp Nybegynder
24. august 2004 - 10:30 #8
Jo, selvfølgelig :)
Avatar billede Slettet bruger
25. august 2004 - 02:09 #9
Filnavne i Linux bliver bare set som en række bytes, som i princippet kan indeholde hvadsomhelst undtagen 0. Der er bare nogle tegn, som kan være besværlige af forskellige årsager:

1) / som bruges til mappe-adskiller
2) mellemrum
3) Anførselstegn (både enkelte og dobbelte)
4) Andre specialtegn, som f.eks shell vil fortolke
5) Tegn, der har forskellige byte-værdier alt efter anvendt tegnsæt, bør undgås eller kontrolleres grundigt.

De tre mest anvendte tegnsæt i Danmark er iso-8859-1 (eller -15), windows-1252 og UTF-8. De danske bogstaver har ikke samme byte-værdier i disse tegnsæt. Enten skal man sørge for at alle de systemer, der skal arbejde på samme filer er enige om hvilket tegnsæt, der bruges, eller man skal have sat noget automatisk konvertering op.

Ad 1, 2, 3 og 4: Det kan godt lade sig gøre at bruge disse tegn i filnavne, men afhængigt af hvor, skal man måske udføre en del krumspring for at få det til at virke.
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