Avatar billede evilfish Nybegynder
05. oktober 2008 - 16:53 Der er 10 kommentarer og
1 løsning

Oprette en tabel til at godtage danske tegn

Hej eksperter

Jeg er støt på et problem som jeg ikke helt har styr på. Jeg indsætter informationer i min database via et java program. Dette har kørt fint med æ ø å karakterer. Disse værdier bliver lagt i nogle VARCHAR felter, og intet problem her.

Nu har jeg oprettet en ny tabel, hvor jeg også har nogle VARCHAR felter som den andre tabeller. Men her bliver alle "non-ascii" tegn, som æ ø å lavet om til noget volapyk.

Jeg ved man kan fortælle tabellen at den skal arbejde med æ ø å tegn nå man opretter den. Hvorledes kan dette gøres?

Tabellen der fejler bliver oprettet således:

CREATE TABLE sp
(
  sp_ID      VARCHAR(10),
    sp_name        VARCHAR(25),
  sp_website VARCHAR(50)
    PRIMARY KEY(sp_ID)
);
Avatar billede arne_v Ekspert
05. oktober 2008 - 17:04 #1
VARCHAR kan gemme ÆØÅ.

Med stor sandsynlighed skyldes problemet rod med encoding f.eks. UTF-8 versus ISO-8859-1 !

Prøv og sammenlign charset for de 2 tabeller.
Avatar billede evilfish Nybegynder
05. oktober 2008 - 17:11 #2
Hvorledes kan jeg se det?
Avatar billede evilfish Nybegynder
05. oktober 2008 - 17:26 #3
Har kigget lidt i mysql query broweren for charsets. De er alle ens, dog noget så underligt ud.

I alle mine tabeller er de kolonner hvor VARCHAR er lokaliseret lig 'latin1' og column collate lig 'latin1_swedish_ci'. der er en dansk version, så det er vel den der skal vælges. Men det forklare stadig ikke hvorfor nogle af min tabeller kan køre æøå og andre ikke kan
Avatar billede evilfish Nybegynder
05. oktober 2008 - 17:27 #4
Fandt også charset og collation for alle tabellerne:
charset: latin1
Collation: latin1_swedish_ci
Avatar billede arne_v Ekspert
05. oktober 2008 - 17:57 #5
Mystisk !

Hvis database/tabel/felt er ens med hensyn til charset og hvis du henter på samme
måde i Java, så burde du jo også få ÆØÅ ud på samme måde.
Avatar billede evilfish Nybegynder
05. oktober 2008 - 18:33 #6
Præcis. Jeg har lige lavet til om på mit create script, og skal lige afprøve noget.
Avatar billede evilfish Nybegynder
05. oktober 2008 - 18:53 #7
Okay - Jeg har løst problemet ved at kode hver tabel tilat tage det charset det skal arbejde på. fx.:

CREATE TABLE pole_SP
(
  sp_ID      VARCHAR(10),
    sp_name        VARCHAR(25),
  sp_website VARCHAR(50),
    PRIMARY KEY(sp_ID)
) CHARACTER SET latin1 COLLATE latin1_danish_ci;

Jeg tror et eller andet sted dette også er en mere sikker måde at bygge dem op på.
Avatar billede arne_v Ekspert
05. oktober 2008 - 21:10 #8
Jep.
Avatar billede evilfish Nybegynder
06. oktober 2008 - 08:54 #9
Men tak for du gad dirigere mig hen hvor jeg fandt en løsning.
Avatar billede evilfish Nybegynder
31. oktober 2008 - 13:44 #10
du må gerne svare så jeg kan lukke tråden
Avatar billede arne_v Ekspert
31. oktober 2008 - 14:05 #11
OK
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