Milktea Skrevet 11. januar 2008 Skrevet 11. januar 2008 Hei. For øyeblikket utvikler jeg et lite databasesystem der jeg har bruk for Unicode, og bestemte meg for å ta i bruk UTF-8. Problemet mitt er at når jeg henter data fra MySQL-databasen blir aksenttegn, bokstaver som æ, ø og å samt asiatisk stavelsesskrift omgjort til spørsmålstegn. MySQL-databasen kjører på utf8 og utf8_general_ci, og det går fint å lagre alle slags tegn i den. Jeg har også passet på å bruke UTF-8 i HTML-dokumentet mitt (gjennom både XML encoding og meta data). Jeg har prøvd å gjøre om selve dokumentet til UTF-8, og PHP klarer fint å skrive Unicode gjennom echo ol. Et annet problem jeg også har støtt på er at dersom jeg bruker glob() og lister opp filer i mapper, vil ikke filer som inneholder Unicode listes opp. Leste et sted at PHP, i Windows, automatisk bruker en encoding som ikke kan vise slike tegn, men om noen vet om noen vei rundt dette hadde det vært strålende. Så det var flere emner om dette allerede, men ingen av dem løste problemet mitt. På forhånd; takk for svar.
Ernie Skrevet 11. januar 2008 Skrevet 11. januar 2008 (endret) Kjør følgende spørring før du henter ut data fra MySQL: SET NAMES 'utf-8' Grunnen til at du må gjøre dette er at MySQL som standard sender ut data som ISO 8859-1 også kjent som latin1. Endret 11. januar 2008 av Ernie
Milktea Skrevet 11. januar 2008 Forfatter Skrevet 11. januar 2008 Prøvde, men fikk det ikke til å virke. Verken skrive eller lese UTF-8 virker, ser det ut til. Jeg kan lagre det som gibberish og få PHP til å gjøre det lesbart når jeg henter det ut dersom jeg bruker noe annet enn Unicode, men da vil databasen se direkte stygg ut. Funksjoner som sortering ol. vil også miste virkningen sin dersom store deler av databasen ser ut som dette; "å¤¢è¦‹ã‚‹è¶æ°´". Arrg, ser frem til den dagen vi har _en_ encoding som alle følger.
grimjoey Skrevet 11. januar 2008 Skrevet 11. januar 2008 bruker du teksteditor eller wysiwyg? har du sjekket at programmet du bruker til å lage sidene lagrer data i utf8?
Milktea Skrevet 11. januar 2008 Forfatter Skrevet 11. januar 2008 Har skrevet filene i Notepad2 fra bunnen av, og jeg har passet på at de er lagret som UTF-8. Som jeg nevnte fungerer det å legge f. eks. japanske tegn direkte inn som HTML, eller å bruke en echo-funksjon for å skrive Unicode. Tegnene fra databasen leses heller ikke som doble slik de, såvidt jeg vet, skal (jeg får bare ett spørsmålstegn per tegn).
grimjoey Skrevet 12. januar 2008 Skrevet 12. januar 2008 (endret) det er naturlig at du får et ? per byte ettersom informasjonen ikke leses som unicode. dersom informasjonen leses som unicode slår den sammen 1-4 bytes alt ettersom hva de 5 første bittene sier (http://no.wikipedia.org/wiki/UTF-8). jeg ville sjekket encoding spesifikasjonen i dokumentet jeg. mulig at du enkoder til unicode, men at dokumentet presenteres som noe annet. sjekk at meta og xml encoding stemmer, og dersom du bruker IE kan det hende du må ta vekk xml informasjonen (quirksmode trigger i noen versjoner). edit: når jeg tenker over det burde du faktisk fått flere ? tegn dersom tegnene du skal representere er multibyte i unicode. dette betyr kanskje at programmet du leser siden med ikke har tegnsettet for disse tegnene. den leser at tegnene er multibyte, men finner de ugyldige eller mangler tegnsett. Endret 12. januar 2008 av grimjoey
Milktea Skrevet 12. januar 2008 Forfatter Skrevet 12. januar 2008 (endret) Har satt både META og XML data samt PHP header til Unicode. Edit: Har dessuten skjekket etter at dokumentet leses som Unicode i Firefox. Endret 12. januar 2008 av Milktea
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå