Gå til innhold

[Løst] Problemer med encoding fra Flash


Anbefalte innlegg

Skrevet (endret)

Hei!

 

Lager en internasjonal greie hvor en Flash- side sender til et php- script som igjen setter inn data i MySQL. Dataene fra Flash- filen er i utf-8, php-filen er utf-8, og Collation er satt til til utf8_general_ci i databasen. Når jeg mottar variablene fra Flash- filen og kjører de i scriptet, vises de riktig, men når jeg setter de inn i db, blir de altså feil.

 

Prøver jeg å legge inn

 

ĀāČčĒēĢģĪīĶķĻļŅņŠšŪūŽžąčęėįšųūžÕõÜüÖöÄä

 

får jeg

 

Ä€ÄÄŒÄĒēĢģĪīĶķĻļŅņŠšŪūŽžąÄęėįšųūžÕõÜüÖöÄä

 

når jeg browser tabellen via phpMyAdmin. Legger jeg inn direkte i phpMyAdmin, har jeg mulighet til å skrive inn alle tegnene. Så hva kan være galt her? Supert om noen vet hva som er galt her. :!:

Endret av funkyboy
Videoannonse
Annonse
Skrevet

Det som er galt er at du ikke setter MySQL til å jobbe med input som UTF-8 internt.

SET NAMES 'utf8' COLLATE 'utf8_general_ci'

spesifiserer bare tegnsettet mellom server og klient. Skal man sikre at man faktisk lagrer ting som UTF-8 må

SET character_set_server='utf8'

til.

Skrevet
Det som er galt er at du ikke setter MySQL til å jobbe med input som UTF-8 internt.

SET NAMES 'utf8' COLLATE 'utf8_general_ci'

spesifiserer bare tegnsettet mellom server og klient. Skal man sikre at man faktisk lagrer ting som UTF-8 må

SET character_set_server='utf8'

til.

 

Ah, sånn å forstå! Takker så meget. :!:

 

echo mysql_client_encoding($conn); -> latin1

 

Kan desverre ikke gjøre dette, da det ligger en god del andre databaser på samme serveren, som er nødt til å være som de er. Men om jeg ikke får til dette, får jeg da lagret som utf-8, eller er jeg da nødt til å lagre som Latin1?

Skrevet

Det kan settes pr. tilkobling så du trenger ikke å endre noe på oppsettet. Det er rett og slett bare å kjøre de rett etter at du kobler til.

Skrevet
Det kan settes pr. tilkobling så du trenger ikke å endre noe på oppsettet. Det er rett og slett bare å kjøre de rett etter at du kobler til.

 

Ok, thanks again! Så om jeg kjører denne kommandoen, endrer jeg altså ingenting, annet enn i dette scriptet? Eller må jeg etter at jeg har utført nødvendige spørringer sette tilbake til latin1?

Skrevet
Som sagt, det settes pr. tilkobling så neste tilkobling vil starte med standardinnstillingene, ikke det du har satt i scriptet.

 

Konge! :!: Hjertlig takk.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...