31. juli 2007 - 18:06Der er
15 kommentarer og 1 løsning
Flash ut8 filnavn
Jeg har en flv player der loader flv filer som den får via en variable sendt med swf filen navn.
/player.swf?flvFilename=/video/noget-med-ø.flv
det ser sådan set ud til at virke fint men flash insistere på at loade /video/s%F8mthing.flv istedet for /video/s%C3%B8mthing.flv, min html side er utf8 encoded så det er ikke der fejlen ligger.
jeg har også forsøgt at åbne filen med med et url der i forvejen er url encoded, men det har heller ikke hjulpet /player.swf?flvFilename=/video/noget-med-%C3%B8.flv
Jeg har haft problemer med det samme engang jeg lavede et CMS system der skulle arbejde med flash!
Flash's måde at oversætte æøåÆØÅ er %C3%A6%C3%B8%C3%A5%C3%86%C3%98%C3%85 hvorimod HTML's UTF encode er %E6%F8%E5%C6%D8%C5.
Jeg ser intet system i dette og ved ikke hvorfor det er så anderledes. Men tror det nemmeste ville være at oversætte alle de tags som du får i din querystring i flash til de flash bruger og derefter unescape det så du får de rigtige bogstaver i flash.
Altså, "%C3%A6%C3%B8%C3%A5%C3%86%C3%98%C3%85" er æøåÆØÅ i urlencoding under utf-8. Og "%E6%F8%E5%C6%D8%C5" er æøåÆØÅ i urlencoding under latin-1/iso-8859-1.
Det ved jeg ikke. Men jeg ved bare at hvis man skriver æøåÆØÅ i sin adresselinje i sin browser bliver det lavet om til "%E6%F8%E5%C6%D8%C5" men de tegn kan flash ikke forstå da den selv kører med disse tegn "%C3%A6%C3%B8%C3%A5%C3%86%C3%98%C3%85" for de samme 6 bogstaver. Derfor må man gøre det at når man hiver sine bogstaver lave dem om til de tegn flash bruger og derefter unesape dem.
Nolleren: Som barklund siger så er det ene utf8 og det andet iso-8859-1 Mit problem er faktisk at flash kalder i iso-8859-1 istedet for utf8 hvilket er omvendt af hvad du sigere, har du nogen ide om hvordan du har fået flash til at køre utf8? Hvis du vil køre utf8 i urls på din side skal du bare konfiguere dine html filer (gemme som utf8 og indsætte meta tag), og muligvis browser og dns. det har jeg allerede gjordt på min side så min side sender %C3%B8 og ikke %F8 til flash, Jeg har overvejet at at escape urlen men ser det som en dårlig løsning, især nu hvor du indirekte siger det godt kan lade sig gøre at få flash til at køre UTF8.
Barklund: Jeg har fuld adgang til at lave om i flash filen men jeg kan ikke bestemme flv filnavnene nogle ider?
Det er til at loaded filindholdet i samme encoding som brugerens OS, det ville gøre at win9x/me/nt ville loade indholdet i iso-8859-1, 2000/xp/vista/linux i UTF8 og switchen virker slet ikke på mac os så der vil den opføre sig som nu, så den funktione er bestemt ikke acceptabel. Men mit problem er med filnavnen ikke indholdet af tekst filer (loader slet ikke tekst filer).
Ja jeg har adgang til serveren, jeg kan lave php. useCodepage kan kun sættes til TRUE og jeg kan ikke rigtig satse på at brugeren har et OS der både køre UTF8 og ikke er Mac, specielt fordi hoved parten af dem der skriver og uploader til siden sider ved Mac's, også noget jeg ikke kan lave om på :)
Så kan visvideo.php enten forsøge at læse filnavnet direkte, eller hvis det fejler læse filen "på det andet tegnsæt" (altså konvertere fra utf-8 til latin-1 eller omvendt efter behov).
I PHP skal du så - når du har fundet filen - sende den rigtige content-type header tilbage til flash og så til sidst lave en fpassthru("min.flv").
Men noget helt andet, hvis brugerne selv uploader videoerne via et php-script, du har kontrol over - kan du så ikke bare sørge for at fjerne specialtegn her?
jeg kunde godt blokere special tegn men det ville ikke vaere godt fo brugerne, de er allerede slemt kede af at jeg fjerner /& og ? fra filnavnen. dit work around med at søge efter filen direkte og konvatered til utf8 er et acceptabelt workaround, men jeg vil stadig foretrække at dt bare virked.
Jeg har ikke lige en server, der bruger utf-8-filnavne, så jeg kan ikke teste selv - ellers kunne det godt tænkes, at der kunne laves en løsning. Men jeg kender ikke én umiddelbart, da jeg aldrig selv er stødt på problemet. Jeg ville omskrive filerne efter upload.
Hvis du vil have utf8 filnavne kan du slå ftp over i utf8 i nogle clienter som smart ftp, det skulde helst også være utf8 hvis du laver filen direkte på maskinen
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.