Brug af unicode (UTF-8 ell. UTF-16) eller noget tilsvarende
Jeg arbejder på en side, der skal oversættes til mange forskellige sprog, deriblant dansk, engelsk, kinesisk og russisk. Da disse sprog har hvert sit tegnsæt, kan det ikke bare gemmes som normal tekst. Jeg bruger i forvejen en konverteringsfunktion, der bytter tegn såsom ÆØÅ ud med den tilsvarende entity (f.eks. æ for æ).
Dette virker bare ikke med f.eks. kinesiske tegn, eller gør det? Findes der enteties for ethvert tegn? I så fald ville det ikke være så slemt at gemme alle tegnene entity by entity, selvom det fylder fire gange så meget.
Jeg har talt med en der foreslog mbstring og iconv, men han havde ikke selv videre erfaring med det, og det skal jo også kunne gemmes i mySQL databasen, ikke at forglemme.
Så hvis der er en, der har erfaring med at bruge PHP til at gemme og hente mange forskellige sprog (med forskelligt tegnsæt) fra en mySQL database, vil jeg meget gerne høre fra ham/hende.
Tak for kommentaren, men det lader sig ikke gøre sådan som systemet er skruet sammen på nuværende tidspunkt... hvis der er nogen, der har en anden løsning, vil jeg meget gerne høre den!
Tak, jeg løste problemet ved at oversætte hver karakter der ikke findes i det engelske alfabet (a-z 0-9 plus nogle andre tegn) til den tilsvarende unicode i html-formatet &#xxx; hvor xxx er UTF-16-koden (dette gjorde jeg med javascript tilknyttet submit-knappen på formen hvor teksten skulle skrives ind). Dette fungerer ganske godt med de vestlige sprog, der lægger sig op ad det engelske alfabet. Til gengæld bliver siderne en del større end nødvendigt når der er tale om kinesiske tegn mm., idet størstedelen af teksten kommer til at bestå af &#...; (som jo er en hel del længere end et enkelt tegn).
Løsningen er altså ikke optimal, og ikke fuldt ud testet med de asiatiske tegnsæt, så hvis du har en alternativ måde ville det være meget interessant at høre det :) Ikke mindst for eventuelle andre, der ender i samme situation!
Jo, jeg kører alt i utf-8 (også kaldet unicode sommetider) Så er jeg fri for at ændre på tegnene osv. jeg skriver direkte ud, og direkte til databasen uden at bearbejde tegnene. og henter direkte fra databasen i utf-8. Det kræver dog en del arbejde med at opsætte systemet. Og det skal helst være en af de nyeste versioner af mysql, phpmyadmin og php du kører. Så alt efter om du hoster selv eller køber det ved et firma, så kan det være at der skal opgraderes/ændres noget. Men hvis det kører fint som det er, så er der jo ik nogen grund til at kaste sig ud i en masse :o)
Synes godt om
Ny brugerNybegynder
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.