sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #89418
Re: mysql latin1->uft8 konvertering
On Fri, Oct 06, 2006 at 11:42:52AM +0200, Atte André Jensen wrote:
> Hejsa
>
> Jeg sidder med et webbaseret system som altid har kørt på en debian
> server. Ny er systemt flyttet til en ubuntu server og nu er danske tegn
> + specialtegn som fx é scramblet i mysql databasen. Yderligere
> kompliceret af at nogle af disse forkerte tegn muligvis er blevet rettet
> i hånden.
>
> Jeg har prøvet "iconv -f ISO-8859-15 -t UTF-8 file1.sql > file2.sql" med
> et dump, men det blev det ikke bedre af, faktisk ser det ud som om det
> blev værre. Men igen; jeg ved ikke om de data jeg kikker på er blevet
> tilrettet i hånden.
>
> Hvad er den korrekte fremgangsmåde på dette?
Hvis problemer også er html sider og filer, så
sæt Ubuntu til latin1 igen, det kan lade sig gøre
Prøv at søge lidt på sslug's postarkiv, jeg har haft nogle indlæg
tidligere i år om dette med nogle forslag.
Af en eller anden årsag har man i ubuntu fjernet
mulighed for at vælge latin1/iso-8859-1 direkte i menuer.
Hvis du kan flytte SQL data igen, så sæt mysql/system til korrekt tegnsæt
og evt via webmin opret tabeller/databaser med korrekt tegnsæt,
derefter indlæs data.
En anden mulighed er at flytte/konvertere det hele til UTF8
Hvis først data er blevet en blandet landhandel med tegn fra
begge tegnsæt bliver det kompliceret :(
måske en manuel gennemgang og konvertering er nødvendigt.
måske nogle regular expressions eller lille c-prog kan matche de
mest hyppige latin1 tegn som æøåÆØÅ (i latin1) og flytte til utf-8
eller omvendt. æøåÆØÅ i utf-8 er består af 2 bytes hver.
UTF-8:
echo æøåÆØÅ |hexdump -C
00000000 c3 a6 c3 b8 c3 a5 c3 86 c3 98 c3 85 0a
ISO8859-1:
echo æøåÆØÅ |hexdump -C
00000000 e6 f8 e5 c6 d8 c5 0a
--
mvh Frank Damgaard |
References