Avatar billede bojo Nybegynder
15. september 2010 - 09:57 Der er 5 kommentarer

Filsystem og tegnsæt

Hej

Jeg er ved at blive tosset, måske jeg allerede er blevet!

Findes der en 100% sikker metode til at bestemme hvilket tegnsæt en string er kodet med?

I forbindelse med en filliste hvor der er æ,ø og å i filnavnene har jeg et "lille" problem:

Hvis jeg bruger:
$detect = "ISO-8859-1, UTF-8, ASCII";
$t1 = mb_detect_encoding($titel,$detect,TRUE);

svarer den ISO-8859-1

medens:
$detect = "UTF-8, ISO-8859-1, ASCII";
$t1 = mb_detect_encoding($titel,$detect,TRUE);

giver svaret UTF-8

Hvad er så rigtigt? Eller hvordan bestemmer jeg 100% sikkert hvilket tegnsæt en string er kodet med?

På forhånd Tak
Avatar billede repox Seniormester
15. september 2010 - 10:05 #1
Hvorfor vil du afgøre hvad tegnsæt det er i? Hvorfor ikke diktere hvilket tegnsæt der skal anvendes? Det vil være det mest normale i stort set alle sammenhæng... Selv 'kvalificerede' gæt på tegnsættet giver fejl fra tid til anden...
Avatar billede bojo Nybegynder
15. september 2010 - 10:25 #2
Fordi der desværre er flere forskellige uploadere og de er ikke til at opdrage. Lige så hurtigt jeg sætter deres ftp-client op til utf-8 lige så hurtigt får de det ændret :-(
Desværre hænger det så på mig at finde ud af hvilket tegnsæt hver enkelt fil er gemt i, så jeg kan dels vise linket korrekt og dels kan linke til den rette pdf (det er et pdf bibliotek).
Avatar billede repox Seniormester
15. september 2010 - 10:49 #3
Well, som sagt - dit gæt er lige så kvalificeret som alt muligt andet; du vil aldrig kunne sikre dig at der ikke kommer tegn med fra et andet tegnsæt end det angivne.

Det mest effektive/mest anvendte er at man dikterer tegnsættet og konverterer for at sikre sig at tegnsættet er rigtigt. Det kan man eksempelvis gøre med iconv() - http://php.net/iconv

Men du vil aldrig kunne 100% afgøre automatisk om tegnsættet er korrekt, for det er brugerinput du behandler.

Se denne streng:
"Hej - jeg er en streng med æ ø og å - også dobbeltencoded, fordi jeg er en spasser med min teksteditor: æ ø Ã¥"

Den streng vil du aldrig kunne afgøre hvad du skal gøre med, for strengen vil angiveligt være korrekt formateret UTF-8, selvom jeg faktisk gemte dokumentet i ISO-8859-1.
Avatar billede bojo Nybegynder
15. september 2010 - 11:13 #4
Jeg er såmend mere end tilfreds med "bare" at kunne konverterer :-)
Avatar billede Slettet bruger
15. september 2010 - 13:06 #5
Hvad med at lade tumperne uploade deres skidt via en <form> (med tvunget encoding), i stedet for direkte FTP-adgang ?
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

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