Anmäl dig till Roborock Challenge!

Problem med teckenkodning mellan Javaprogram och databas

Permalänk
Medlem

Problem med teckenkodning mellan Javaprogram och databas

Halloj!
Håller på med ett enklare program i Java som ska hålla reda på anställda och kompetens mm i ett företag. Programmet lagrar info i en databas, och det funkar bra att lägga in och plocka ut info från programmet. Problemet är att när jag visar data från databasen i programmet så blir åäö till fyrkanter med frågetecken. Samma sak åt andra hållet, när jag skriver in data i programmet och lägger in i databasen blir åäö konstiga. Jag använder mig av Netbeans IDE och Flamerobin som databashanterare. Någon som vet hur man fixar så åäö blir som det ska?

Permalänk
Medlem

Vad använder din databas för teckenkodning?

Permalänk
Medlem

Vilken databas, vilken teckenkodning? Det lättaste och det bästa är ifall du använder dig av UTF8. Men vet liksom inte vad du använder.

Samt så vitt jag vet, Java's character encoding baseras på systemet i fråga. Går dock att berätta vilket den ska använda men jag är ingen expert på Java.

Visa signatur

Speldator: Ryzen 7800X3D, 64GB DDR5, RTX 5090
Server: i7-8700k, 32GB DDR4, RTX2080
Steam deck, Rog Ally + de fiesta konsoler.

Permalänk
Medlem

Ah, hittade nu att Netbeans använder UTF8. När man startar Flamerobin kan man välja charset. Hittills när jag skapat databasen har den varit satt till NONE, men när jag öppnade den nu ändrade jag till UTF8... Fast såklart är ju databasen (Firebird) sparad med en annan kodning, så det verkar vara att skapa databasen på nytt som gäller, efter vad jag hittade på google.. Eller finns det nåt sätt att konvertera charset på databasen utan att förlora innehållet?

Permalänk
Medlem
Skrivet av Amöban:

Ah, hittade nu att Netbeans använder UTF8. När man startar Flamerobin kan man välja charset. Hittills när jag skapat databasen har den varit satt till NONE, men när jag öppnade den nu ändrade jag till UTF8... Fast såklart är ju databasen (Firebird) sparad med en annan kodning, så det verkar vara att skapa databasen på nytt som gäller, efter vad jag hittade på google.. Eller finns det nåt sätt att konvertera charset på databasen utan att förlora innehållet?

Ifall det är UTF8-encoding på det du matat in i databasen så ska ingen konvertering behövas, det bör räcka med att säga åt databasen att du vill ha UTF8 när du hämtar ut data ur den. Hur man gör den inställningen (om den går att göra efter att databasen är skapad) vet jag inte.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

En kär handledare "löste" mitt problem genom att tipsa om att ändra teckenkodning på system istället, alltså i NetBeans, från utf8 till iso-5... Sagt och gjort, vi gjorde det, allt var frid och fröjd i ungefär fem minuter. Nu har hela programmet kraschat eftersom åäö i källkoden
/**
Här måste jag säga - jo, okej, det var dumt att använda variabel och metodnamn med svenska tecken, jag vet det nu, jag har lärt mig en läxa och ska inte göra om det.
**/
blivit till konstiga krumelurer och fyrkanter, och vi får felmeddelande för varenda variabelnamn (även de utan åäö) i hela huvudklassen. Det går inte heller att ändra eftersom en del är autogenererad kod av NetBeans... Går inte heller att ändra tillbaks teckenkodning. Nån som varit med om något liknande? Går det att lösa eller är det att gå tillbaks till en tidigare version av projektet som gäller?

Permalänk
Medlem
Skrivet av Amöban:

En kär handledare "löste" mitt problem genom att tipsa om att ändra teckenkodning på system istället, alltså i NetBeans, från utf8 till iso-5... Sagt och gjort, vi gjorde det, allt var frid och fröjd i ungefär fem minuter. Nu har hela programmet kraschat eftersom åäö i källkoden
/**
Här måste jag säga - jo, okej, det var dumt att använda variabel och metodnamn med svenska tecken, jag vet det nu, jag har lärt mig en läxa och ska inte göra om det.
**/
blivit till konstiga krumelurer och fyrkanter, och vi får felmeddelande för varenda variabelnamn (även de utan åäö) i hela huvudklassen. Det går inte heller att ändra eftersom en del är autogenererad kod av NetBeans... Går inte heller att ändra tillbaks teckenkodning. Nån som varit med om något liknande? Går det att lösa eller är det att gå tillbaks till en tidigare version av projektet som gäller?

I absolut värsta fall så är det väl en find and replace i typ notepad++ som gäller. Att gå rollbacka till en tidigare version låter inte kul.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

I absolut värsta fall så är det väl en find and replace i typ notepad++ som gäller. Att gå rollbacka till en tidigare version låter inte kul.

Det är just det - den autogenererade koden går inte att ändra, varken manuellt eller find n replace...

Permalänk
Medlem
Skrivet av Amöban:

Det är just det - den autogenererade koden går inte att ändra, varken manuellt eller find n replace...

Självklart kan du ändra autogenererad kod. Det är bara Netbeans som hindrar dig från att göra det i just Netbeans.

Antingen så ändrar du koden i Notepad++ eller annat texthanteringsprogram från grunden eller så tar du bort blocken som säger att det är autogenererat och ändrar i Netbeans.

Mer info:
http://stackoverflow.com/questions/7284960/netbeans-code-gen-...

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

I absolut värsta fall så är det väl en find and replace i typ notepad++ som gäller. Att gå rollbacka till en tidigare version låter inte kul.

Skrivet av Leedow:

Självklart kan du ändra autogenererad kod. Det är bara Netbeans som hindrar dig från att göra det i just Netbeans.

Antingen så ändrar du koden i Notepad++ eller annat texthanteringsprogram från grunden eller så tar du bort blocken som säger att det är autogenererat och ändrar i Netbeans.

Mer info:
http://stackoverflow.com/questions/7284960/netbeans-code-gen-...

Haha ja, såklart! Googlade lite och hittade samma sak, öppnade filerna i NotePad++ och ändrade där.