Var skiter sig teckenkodningen? Jsp/Netbeans/Tomcat/Apache/Mysql

Permalänk
Medlem

Var skiter sig teckenkodningen? Jsp/Netbeans/Tomcat/Apache/Mysql

Halloj!

Sitter med ett litet webbprojekt i Netbeans, där jag valt att hålla mig till UTF-8. Första gången som jag tänkt till ordentligt kring val av teckenkodning, och första gången som jag inte kan få något att fungera.

Vad som händer är att text och filnamn innehållandes å/ä/ö som skickas från formulär blir fucked up. Texten som sparas i mysql blir bogus, och filnamnet på filen som landar på servern blir också felaktigt.

Det jag har gjort för att försöka hålla utf-8 hela vägen är.

Netbeans:
- Satt sources för projektet till UTF-8
- Satt parametern "-encoding utf-8" för compiling

JSP-filer
- Satt <%@page contentType="text/html" pageEncoding="UTF-8"%>
- Satt <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- Satt request.setCharacterEncoding("UTF-8");
- Satt response.setContentType("text/html;charset=UTF-8");

MySql
- Satt charset till UTF8

Miljön som siten ligger på är
Ubuntu Server med Apache 2 som proxar till Tomcat 6.

Någon som har några tankar eller idéer? I och med att både filnamn och text i mysql ser konstig ut känns det som att data skickas från formuläret i någon annan teckenkodning? Eller tas emot felaktigt i requesten?

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Jag har haft liknande problem på ungefär samma setup som dig, det brukar sluta med att jag får byta teckenkodning till slut... Finns det någon anledning till att du inte kör ISO-8859-1 hela vägen?
Funkar det om du ändrar <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> till UTF-8??

Jag kan eventuellt kolla igenom något projekt jag har liggandes när jag kommer hem från jobbet...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Szandman
Jag har haft liknande problem på ungefär samma setup som dig, det brukar sluta med att jag får byta teckenkodning till slut... Finns det någon anledning till att du inte kör ISO-8859-1 hela vägen?
Funkar det om du ändrar <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> till UTF-8??

Jag kan eventuellt kolla igenom något projekt jag har liggandes när jag kommer hem från jobbet...

Oj, ser att jag klippt och klistrar fel på meta-taggen. Där har jag redan valt UTF-8, att det står ISO-8859-1 beror på att jag provade runt både fram och tillbaks för att se vad som hände.

Att jag kör med UTF-8 beror mest på att det känns något mer framtidssäkert. Ajax fungerar ju helt klart bäst när allt annat är UTF-8.

Men visst skulle det nog gå att få allt att rulla på ISO-8859-1, men det skulle kännas jäkligt trist att gå tillbaks till det.

Kika gärna på dina projekt hemma om du tror att du har någon lösning, jag blir absolut inte ledsen

. . . . . .

Hittade den här infosidan:
http://wiki.apache.org/tomcat/Tomcat/UTF-8

Om man kikar på rubriken Alternate Solution, kanske kan det vara något att prova? Eller kastar jag bara bort tid då?

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Problemet är väl att browsern du matar in värdena ifrån kör 8859-1, och det är där felet uppstår...

Jag har provat något liknande nån gång, försökt att filtrera igenom koden och konvertera, men aldrig fått det att fungera. Men det är kanske värt ett försök??

Återkommer när jag letat lite hemma, om ingen svarat innan dess...

Permalänk
Medlem

Lessen, blev inget klokare av att titta igenom portföljen hemma, jag har nästan uteslutande användt 8859-1... Hoppas det löser sig för dig!

Permalänk
Medlem

Jag gjorde om allt till 8859-1, och det fungerar ju.

Uppdaterar tråden om jag hittar någon lösning på problemet. Har satt företagets konsult på problemet, kanske finns svaret där

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av HappySatan
Jag gjorde om allt till 8859-1, och det fungerar ju.

Uppdaterar tråden om jag hittar någon lösning på problemet. Har satt företagets konsult på problemet, kanske finns svaret där

Är nyfiken på detta. Testa följande i turordning (utgår ifrån att du kör Windows):

1. Skapa en ren HTML-fil, UTF-8 no BOM (Notepad++ är enkelt och bra för detta). Fyll den med jobbiga tecken, glyphs och liknande. Surfa in på ditt externa IP. Om det ser rätt ut...

2. Skapa en .JSP. Samma sak som ovan, pilla in jobbiga tecken och sånt. Det behövs egentligen ingen kod, det viktiga är att Tomcat tar hand om requesten. Blir det fel här så är det ett kommunikationsproblem mellan Apache och Tomcat. Om det ser rätt ut...

3. Utveckla test #2 så att JSP-filen för in data i din databas. Kolla så att collation på DB är satt till utf8_unicode. Gör även en webapp som hämtar data från databasen och visar den. Använd inte ett CLI-verktyg eftersom dessa nästan alltid har dåliga teckentabeller. Blir det fel någonstans här så har du satt fel encoding på din databas. Om det ser rätt ut har du inget problem

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Problemet är troligtvis att webbläsaren skickar formuläret som ISO-8859-1.

Permalänk
Medlem
Visa signatur

Kom-pa-TI-bilitet