Newz.dk abonnement

Slip for reklamerne på newz.dk ved at oprette en bruger og tegne et abonnement.




ÆØÅ fucker op?

Gå til bund
Gravatar

#1 PHP-Ekspert Thoroughbreed 1. mar. 2017 11:21

Mojn!

Jeg fatter simpelthen nur bahnhof.

Hvis jeg under følgende skriver ÆØÅ er der intet problem:
'label' => 'Ææ Øø Åå',

Den viser det som den skal. Men, det data scriptet henter fucker fuldstændig rundt i det, og viser i stedet UTF-charset (Altså =C3=86 i stedet for Æ)

--

Det der undrer mig, er at det er samme PHP som bruger 'label' som trækker data ud.
Hvordan fortæller jeg den at det data der bliver læst er UTF-8?

Hilfe!
Doner til Kræftens Bekæmpels i forbindelse med JJ's for tidlige afsked: https://www.betternow.org/dk/jjnewzdk
Gravatar

#2 _tweak 1. mar. 2017 14:04

Det formentlig fordi din php fil er gemt i UTF-8, derfor er det der outputtes også UTF-8. Hvis din data er gemt som UTF-8 men hentes ind som (feks) ISO8859-1 så vil den stadig outputte den på UTF-8's præmiser, og derfor vise tegnene hver for sig. Tegnsæt bliver hurtig noget trial and error :)

Hvordan læser du dataen ind? Det kan være du skal mb_detect_encoding på den evt.
https://newz.dk/
Gravatar

#3 arne_v 1. mar. 2017 18:59

Tricket med tegnsæt er at være konsistent.

Hvis din server / side fortæller browseren at tegnsæt er X, så skal:
* PHP filerne være gemt i X
* database connection bruge X (det er derimod ikke nødvendigvis påkrævet at data i databasen bruger X, men det gør tingene lidt nemmere)

Din beskrivelse lyder som om:
- browser tror sideerne er ISO-8859-1
- PHP filerne er gemt som ISO-8859-1
- database connection bruger UTF-8
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#4 PHP-Ekspert Thoroughbreed 1. mar. 2017 21:29

#2 #3

Den henter data fra en IMAP-server, kan det være mailen der sender en fucked up header?
Doner til Kræftens Bekæmpels i forbindelse med JJ's for tidlige afsked: https://www.betternow.org/dk/jjnewzdk
Gravatar

#5 _tweak 1. mar. 2017 21:30

arne_v (3) skrev:
PHP filerne er gemt som ISO-8859-1

Jeg tænker, at i så fald ville hans streng (hvor æøå står i koden) ikke outputte som æøå, medmindre browseren tror (eller ved) at dokumentet heller ikke er ISO8859-1 - hvilket faktisk kan være, ja, præcis det denne fejl giver. Så helt rigtig.

Tegnsæt er bare lykken....
Redigeret
https://newz.dk/
Gravatar

#6 PHP-Ekspert Thoroughbreed 1. mar. 2017 21:30

Har prøvet både UTF-8 og ISO-8859-1 Ansi
Lige lidt hjælper det. Hvis jeg laver en echo/print virker det fint nok, men den data den henter fra IMAP skriver =C3=86 -.-

--

Kan lige smide kode ind i morgen formiddag. Virker code-tagget?
Redigeret
Doner til Kræftens Bekæmpels i forbindelse med JJ's for tidlige afsked: https://www.betternow.org/dk/jjnewzdk
Gravatar

#7 _tweak 1. mar. 2017 21:32

Jeg indrømmer jeg ikke husker det - men pastebin.com er lækkert :)
https://newz.dk/
Gravatar

#8 arne_v 2. mar. 2017 21:37

Hmmm.

Jeg får lige en tanke når det er email og ikke database.

Måske henter du rå quoted printable.

Hvis du nu har:

$data = en_eller_anden_funktion_som_henter_email();
echo $data;

kan du saa prøve:

$data = en_eller_anden_funktion_som_henter_email();
echo quoted_printable_decode($data);
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#9 PHP-Ekspert Thoroughbreed 2. mar. 2017 22:03

#8

Det skal helt klart prøves. Fik ikke lige tid i dag, men ser på det her i løbet af weekenden.

Takker.
Doner til Kræftens Bekæmpels i forbindelse med JJ's for tidlige afsked: https://www.betternow.org/dk/jjnewzdk
Gravatar

#10 _tweak 3. mar. 2017 11:22

"=C3=86" ligner i hvert fald klassisk mail-encoding stuff :-)
https://newz.dk/
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login