Avatar billede Slettet bruger
08. september 2008 - 12:25 Der er 13 kommentarer og
1 løsning

specialtegn / tegnsæt

Hej Eksperter

Jeg har et problem der har drillet mig meget ang. tegnsæt/specialtegn. Jeg kan slet ikke finde rundt i det.

For det første, så er jeg i smarty nødt til at skrive alle mine specialtegn med html-koder, da tegnene ellers vises helt forkert. ø bliver fx til ø osv.

Mit største problem er når jeg via html-formularer (og evt. ajax) skal putte data i min database. Her bliver alle specialtegn også til noget lige så mærkeligt som ovenstående.

på mine dokumenter har jeg sat tegnsættet til charset=iso-8859-1.
I databasen kan jeg ikke helt finde ud af hvordan jeg skal indstille dem. Har prøvet med flere forskellige. uft8, latin1 etc.

Navicat 8, som jeg bruger til at styre databasen kan indstille tegnsættet 3 steder - databasen, tabellen og feltet - hvilken skal jeg pille ved?

Er der nogen der kan give mig en løsning på hvilke tegnsæt jeg skal bruge, noget læsestof eller bare en php-funktion der kan få det til at virke.

Min side skal kunne bruge danske og svenske tegn.
Avatar billede jakobdo Ekspert
08. september 2008 - 12:35 #1
Du bør bruge UTF-8, da det er vejen frem.
Du skal så bruge det i din html, i din database og når du sender data via Ajax.
Så burde det virke.
Avatar billede Slettet bruger
08. september 2008 - 13:10 #2
jeg har styr på hvordan jeg sætter det i HTML'en, men hvad med når jeg sender via AJAX?

og er der en nem måde at lave alle databaserne/tabellerne/felterne om til utf8?

Jeg har ret mange.
Avatar billede jakobdo Ekspert
08. september 2008 - 13:21 #3
Jeg ved faktisk ikke hvordan man masse-opdatere mysql.
Er usikker på om man bare kan skifte character-encoding feltet.
Hvordan kører du ajax ?
Noget du selv har lavet eller en færdig komponent ?
Avatar billede Slettet bruger
08. september 2008 - 15:07 #4
det er et færdigt komponent.
En smarty tilpasset udgave af prototype.

http://kpumuk.info/ajax/ajax-enabled-smarty-plugins/
Avatar billede jakobdo Ekspert
10. september 2008 - 08:11 #5
Det kører måske allerede med UTF-8
Hvad hvis du prøver UTF-8 i html og database, virker det så ikke ?
Avatar billede Slettet bruger
12. september 2008 - 10:56 #6
Ja har søgt lidt og fundet ud af at de også kører utf-8.

Jeg har nu ændret til UTF-8 i alle mine html-skabeloner, samt forsøgt at ændre dette i databasen, men nu vises al data der HENTES fra databasen også forkert.

I mit MySQL program står der at databasen er encoded i utf-8, men det lader den til ikke at være?

Kan jeg konvertere den på en eller anden måde, eller er det måske slet ikke det, der er galt?

se eksempel her: www.pissuptest.dk/budapest under "seneste feedback"
Avatar billede jakobdo Ekspert
12. september 2008 - 11:25 #7
I din database virker det til data er gemt som ISO8859-1.
Så det skal konverteres til UTF-8.
Måske du kan lave et script som tager alt data og gemmer det UTF-8 konveretet.
Avatar billede Slettet bruger
12. september 2008 - 11:39 #8
hvordan konverterer jeg sådan?

Jeg tror det er lidt en blanding af latin1/ISO8859-1 og utf8, hvilket ikke gør det hele meget nemmere. :-O
Avatar billede jakobdo Ekspert
12. september 2008 - 11:57 #9
Avatar billede Slettet bruger
12. september 2008 - 14:20 #10
Tak.

Den virker ihvertfald hvis jeg kører database dataen ind igennem den inden det bliver udskrevet, men det er tydeligvis ikke nogen langtidsholdbar løsning :)

Så du vil foreslå at jeg simpelthen har et script der hiver al data ud, kører det igennem og smider det tilbage i databasen? (bare for at være sikke rpå at jeg forstår korrekt)

Kan man bruge de samme tables?
Avatar billede jakobdo Ekspert
12. september 2008 - 20:26 #11
ja, du kan godt bruge samme tabel.
For at sikre dine gamle data, kan du tilføje et nyt felt og smide konverteret data deri.
Når alt så spiller, kan du slette gammelt felt og rename det nye.
Avatar billede Slettet bruger
12. september 2008 - 21:08 #12
Tak for hjælpen.

Jeg prøvede at tilføje "set names='utf-8'" efter alle mysql-connects, og det lader faktisk til at have virket. :-)

Hvis det går galt igen må jeg få konverteret.

Nu har jeg imidlertid fået det problem at jeg ikke kan læse $_SERVEr, $_POST osv. på nogle af mine danske sider (kun i inkluderede filer får jeg fejlen, og det selvom jeg inkluderer de samme filer på det engelske site uden problemer :-O) efter at have lavet konverteringen.

Smid et svar for points - og mange tak for hjælpen!
Avatar billede jakobdo Ekspert
12. september 2008 - 21:21 #13
Svar!
Avatar billede jakobdo Ekspert
13. september 2008 - 07:27 #14
Takker for point.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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