Hej !
Vet någon hur jag kan hantera filnamn med svenska tecken i exempelvis åäö.
Sitter på en installation med drupal 6 och xampp på windows.
När jag laddar upp en fil medhjälp av core upload modulen så skrivs filnamnet ned "utf-8" encodat filnamn emedan länken skrivs ned i decodat format dvs åäö.
Exempel:
Laddar upp en fil med namn åäö.jpg
Den skrivs ned till filsystemet som .../files/åäö.jpg
Länken på den skapade noden länkar till .../files/åäö.jpg , vilket innebär att den inte går att öppna. Döper jag däremot om filen till åäö.jpg manuellt i filsystemet fungerar länken.
Har tittat på modulen Transliteration , den löser problemet genom att översätta åäö.jpg till aao.jpg innan nedsparning, vilket iofs fungerar men jag skulle hellre behålla mitt ursprungsfilnamn.
Någon borde ha stött på liknande problem och kan komma med något förslag ?
Comments
Liknande problem
Häromdagen laddade jag upp en fil innehållande #-tecknet till en issue på Drupal, men länken till den fungerade inte för att den inte kodade om #-tecknet. Jag rapporterade problemet i detta ärende på Drupal.org.
Jag har inte provat om min rapporterade bugg gäller för filuppladdningar i allmänhet (på vilken Drupal-installation som helst), menefter att ha läst om ditt problem, så låter det som att Upload-modulen inte kodar om filnamnen ordentligt och kanske är dessa två problem relaterade.mvh Jens
EDIT: Det var en allmän bugg i Drupal. Ärendet är omplacerat till upload.core-modulen.
Förmodligen en "core" bugg
Gissningsvis är detta en core bugg, om man tittar på Transliteration så adresseras problemet som en core bugg.
Gjorde min implementation med transliteration , använder dessutom upload path så jag fick göra ett manuellt hack i den för att få stöd för "kreativa filnamn".
Lever nog med lösningen att döpa om filer och kataloger och "strippa" bort nationella tecken så länge.
Jag testade din bugg i
Jag testade din bugg i Drupal 6.4 och istället för att koda om filnamnet så byter den ut 'åäö.jpg' mot 'jpg.'. Länken på nod-sidan funkar men är ju rätt så förvrängd. Vilken version kör du?
Jag skickade också in en buggrapport på mitt fel. Den finnes här.
Hmmm får inte samma beteende
Jag får som jag skriver i original posten en utf-8 encodad sträng som filnamn.
Sitter på windows, drupal 6.4 och xampp.
Skumt att det skiljer sig, vad har du för operativ, databas och apache implementation ?
Har iofs en hel del moduler installerade i min dev miljö för tillfället.
Kollade in
Kollade in http://drupal.org/node/278425 och problemet verkar uppstå ifall man inte har satt locale korrekt på sin server (eller utvecklingsmiljö i det här fallet).
Testade just att ladda upp filen "åäö.jpg" i Drupal 6.4 på min Mac, den sparas i mappen "files" som just "åäö.jpg". Länken till den är ".../files/åäö.jpg". Så fungerar det också på mina Linux-servrar men där kör jag ännu bara Drupal 5.
MAMP/Windows har kanske problem med att sätta locale eller så är det bara en inställning man behöver fixa.
Transliteration
Transliteration som RTauson nämner kan jag rekommendera för att slippa undan liknande problem. Även om man får ordning på serversidan så kan det vara skönt att inte behöva oroa sig för hur det fungerar ihop med olika klienter.
/ Hannes Lilljequist – SthlmConnection
Skulle tro att windows och xampp har med saken att göra
Hej !
Kan bekräfta att det hela fungerar bättre på en linux än en windows, om det är xampp:en eller windows som är problemet har jag inte riktigt fastställt ännu.
Vad jag förstår använder drupal utf-8 och Apache2 som default ISO-8859-1, vidare använder filsystemet i windows en tredje teckenuppsättning. Gissar att det någonstans "på vägen" till filsystemet blir nån missmatch.