Avatar billede ibrene Nybegynder
03. januar 2010 - 14:09 Der er 6 kommentarer

Latin1 order by med utf8 data

Hej,

Jeg er løbet ind i et mindre problem.

Alle mine data i en større database ligger i UTF8 format. Dette i sidste erd er jo ikke noget i. Men når jeg så gerne vil hente data ud og sortere efter Latin1 hvor ABC kommer først og ÆØÅ til sidste så kommer problemet.

SELECT CAST(_latin1'Øresund' AS CHAR CHARACTER SET utf8);
Laver Øresund om til Øresund

Hvis jeg så prøver at vende sætningen om som
SELECT CAST( _utf8'Øresund' AS CHAR CHARACTER SET latin1);

Så sker der ingenting.

Så hvordan tager man et felt i en table i MySQL som er i utf8 format og får sen select sætning til til at tolke det som Latin1 format?

Håber der er nogle som kan hjælpe mig her.
Avatar billede arne_v Ekspert
03. januar 2010 - 14:45 #1
Hvis data er i UTF8 kan du ikke bruge dem som Latin1.

Men du kan godt angive dansk sortering for UTF8.

Prøv:

SELECT * FROM dintabel ORDER BY etfelt COLLATE UTF8_DANISH_CI;
Avatar billede ibrene Nybegynder
03. januar 2010 - 15:06 #2
Hej Arne,

Jeg er bange for at det ikke 100 % gør tricket.

Tæppeland
Tage

Tæppeland burde jo kommer efter Tage.

Men lad mig forstå det korrekt, man kan godt i en SELECT hente Latin1 data ud som UTF8, men du kan ikke hente UTF( data ud som Latin1?
Avatar billede arne_v Ekspert
03. januar 2010 - 15:15 #3
Tæppeland
Tage

er korrekt sorteret.

A med en tilde over sorteres som A på dansk.

At du sikkert skulle have haft Tæppeland er noget som sorteringen ikke kan gøre noget ved.
Avatar billede ibrene Nybegynder
03. januar 2010 - 15:17 #4
Så med andre ord, data gemt i utf8, kan ikke via en select sorteres som Latin1 med æøå til sidst og ABC forrest?
Avatar billede arne_v Ekspert
03. januar 2010 - 15:23 #5
Både data gemt som UTF8 og som Latin1 kan fint sorteres som dansk. Sortering er en sprog ting ikke en encoding ting (bortset fra hvis man vil have sorteret binært).

Men data der er gemt som UTF8 men faktisk er Latin1 eller gemt som Latin1 men faktisk er UTF8 er et problem.
Avatar billede ibrene Nybegynder
03. januar 2010 - 15:26 #6
Så med andre ord, så burde jeg convertere alt data over til Latin1.

Lidt trist, men skal jeg have de rigtige virke midler til sortering mv, så er det vel eneste løsning?
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
Computerworld tilbyder specialiserede kurser i database-management

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