[CLOSED]Insert data i postgreSQL i UTF-8 formater
Hej Linuxin.
Da jeg har en kammerat som mangler et ordre system, er jeg i fuld gang med programmeringen.
men under den rå programmeringstid - er jeg kommet under et lille problem.
Da jeg løbende pt udvider systemet - ville jeg enormt gerne importere nogle rådata til at arbejde med.
Så mit problem er følgende:
jeg har oprettet en PSQL 8.4 database og kører JSP på serversiden.
Efter oprettelse af DB - har jeg lavet en tekstfil der opretter mine tabeller ved kommandoen "\i db.txt"
Dette fungerer uden problemer, Men da jeg gerne vil oprette nogle brugere, kunder og nogle ordre til at arbejde lidt grafisk design med oplever jeg at den ikke vil acceptere denne tekstfil som jeg har med diverse insert linier.
Og problemet er jo vores fantastiske danske sprog med æ ø å.
For at importere mig selv som brugere ( hedder jørgensen) til efternavn - hvilket den ikke vil acceptere som en del af insertfilen.
Men eftersom min JSP site er bygget med UTF-8 - så kan jeg sagtens via webinterface -ændre mit navn således så det passer med jeg hedder Jørgensen og ikke J(underlige tegn) nsen eller lign.
Hvordan kan jeg importere de da via insert statements i en tekstfil - og den læser æ ø å korrekt ?
Jeg har prøvet at ændre kodningen til både ANSI,Unicode og UTF-8 - men problemet er det samme!
Kommer sig af at jeg gerne vil oprette en tabel der ikke skal rettes i - men desværre skal bruge æ ø å i de data der skal bruges. jeg vil nok regne med at der er en herinde der kan hjælpe mig med dette - Selve mit insert statement skulle gerne se således ud:
Håber en af jer har en ide eller løsning?
Ja jeg ved godt det bedste er at undgå disse - men nej - det kan desværre ikke lade sig gøre!
Da jeg har en kammerat som mangler et ordre system, er jeg i fuld gang med programmeringen.
men under den rå programmeringstid - er jeg kommet under et lille problem.
Da jeg løbende pt udvider systemet - ville jeg enormt gerne importere nogle rådata til at arbejde med.
Så mit problem er følgende:
jeg har oprettet en PSQL 8.4 database og kører JSP på serversiden.
Efter oprettelse af DB - har jeg lavet en tekstfil der opretter mine tabeller ved kommandoen "\i db.txt"
Dette fungerer uden problemer, Men da jeg gerne vil oprette nogle brugere, kunder og nogle ordre til at arbejde lidt grafisk design med oplever jeg at den ikke vil acceptere denne tekstfil som jeg har med diverse insert linier.
Og problemet er jo vores fantastiske danske sprog med æ ø å.
For at importere mig selv som brugere ( hedder jørgensen) til efternavn - hvilket den ikke vil acceptere som en del af insertfilen.
Men eftersom min JSP site er bygget med UTF-8 - så kan jeg sagtens via webinterface -ændre mit navn således så det passer med jeg hedder Jørgensen og ikke J(underlige tegn) nsen eller lign.
Hvordan kan jeg importere de da via insert statements i en tekstfil - og den læser æ ø å korrekt ?
Jeg har prøvet at ændre kodningen til både ANSI,Unicode og UTF-8 - men problemet er det samme!
Kommer sig af at jeg gerne vil oprette en tabel der ikke skal rettes i - men desværre skal bruge æ ø å i de data der skal bruges. jeg vil nok regne med at der er en herinde der kan hjælpe mig med dette - Selve mit insert statement skulle gerne se således ud:
INSERT INTO users (userid,name,lastname,address,postal,cellphone,email) VALUES ('PBJ','Per','Jørgensen','Testvej 21','4780','12234567','test@mail.dk');
Håber en af jer har en ide eller løsning?
Ja jeg ved godt det bedste er at undgå disse - men nej - det kan desværre ikke lade sig gøre!
Kommentarer18
Nu kender jeg intet til
i vim
:set bomb
:set fileencoding=utf-8
:wq
nu er filen i utf-8
Hey Dudesen.
Den filkodning
Den filkodning som at bruge via VIM . er vel lidt det samme som åbne filen i Notepad og skifte kodningen der - Men har prøvet alle muligheder men desværre med samme resultat!
Hej Marlar.
Tak for svaret -
Tak for svaret - men det er ikke lige muligt - da jeg ikke har nogle queryvinduer - da det hele er programmeret i JSP.
Jeg bruger intet administrationsapplication til Postgresql - kun ren console!
iconv
Notepad gør hvad notepad vil med vim kan du regne med at den gør hvad du beder den om
kig evt på iconv programmet. tjæk evt charset med file -bi
Nu siger du notepad er du sikker på filen har unix linefeed og ikke windows linefeed? har selv haft sjov med psql på den konto.
Skal da aldrig sige sig
MEN Nu har jeg ALDRIG tidligere haft problemer med dette - hverken ved ændringer af Notepad mm. Men under VIM efter at have sat jeres anbefalinger - er det stadigvæk samme problem.
Jørgensen ligner ihvertfald ikke mit efternavn.
shell
MEN Nu har jeg ALDRIG tidligere haft problemer med dette - hverken ved ændringer af Notepad mm. Men under VIM efter at have sat jeres anbefalinger - er det stadigvæk samme problem.
Bruger din shell utf-8 og hvilken klient bruger du til postgre?
Ja. Min shell bruger UTF-8 -
LANG=da_DK.UTF-8
Dette fungerer optimalt - så længe jeg tilføjer data igennem mine websites - Men meningen er ligesom når jeg tilføjer nu funktionalitet -´at jeg ikke skal manuelt oprette brugere/kunder/ordrer mm til mine test - men det reelt kommer ind med insert statement allerede fra starten af.
Kan godt være jeg husker
Er databasen i UTF-8?
Det er jo således det
Når jeg efterfølgende bruger min website - kan jeg rette det til Jørgensen.
Det ser således ud - idet det er importeret direkte fra en tekst fil fved hjælp af kommandoen \i insert.txt.
Efterfølgende kan jeg så rete mit navn - via min usermodul i sitet uden problemer.
Nu tænker jeg så mere i det længere forlæøb.
F.eks importerer jeg en txt fil der indeholder postnummer og By - Der er jo mange (rigtig mange byer med æ ø å i dk)
Derfor er jeg interesseret i at få det korrekt importeret fra en tekstfil.
Derfor er jeg
Kan du ikke lige sende (fx via dropbox etc) et eksempel på en konkret tekstfil der volder dig problemer?
set
Det er her: http://www.pbj-design.dk/download/dbcty.txt
miljø
Er din database sat til at forvente utf-8?
Er det output program du ser output i sat til at forvente UTF-8?
Når du kører \i textfil.txt forventer psql programmet så en UTF-8 fil?
@Dudsen ja det er altid
Men som jeg umiddelbart ser det - fandt jeg fejlen der og retter det næste gang jeg udvider en funktion.
SQL_ASCII viste psql -l kommandoen over hvilket charset der var sat på selve databasen.
Jeg havde dog forventet eftersom hele mit system er bygget som UTF-8 - at en installeret pakke tog samme charset - men der tog jeg fejl.
Tak til alle der har bidraget - så snart jeg udvider med en funktion - skriver jeg et svar!
Desværre bruger jeg
Og det er ikke bare en
@mjjzf - Nej desværre -