[mySQL/Java] Unicode

Pagina: 1
Acties:

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Nu zijn we onze CMS aan het debuggen en we hebben een klein probje. Als ik in JTextArea een 'euro' teken zet dan verschijnt die mooi netjes als het euro teken. Maar na wat omwegen (via OJB) komt ie in mySQL terecht als ?. Vice versa geeft te TA een [] (een blokje)...

Dus vroeg ik me af wat ie eigenlijk (ie TA) doorgeeft: Java is Unicode maar als ie naar SQL schrijft heb ik de indruk dat ie converteerd naar Ansi en bye-bye tekentjes...

Google op mySQL geeft heel wat hits maar allemaal duistere vragen en geen antwoorden. ook op mySQL.com vond ik er nu niets bepaald duidelijk over (behalve dat ik 4.1.x 'extended' Unicode support zit) wij gebruiken echter 3...

als ie het niet kan kunnen we hier eventueel een entity encryptie/decryptie gebruiken. (ie HTML tekst)

  • Onno
  • Registratie: Juni 1999
  • Niet online
Rechtstreeks uit de README van de JDBC driver:
You can also store UTF-8 encoded data in MySQL server versions
prior to 4.1 by using 'useUnicode=true&characterEncoding=UTF8'
as parameters in your JDBC URL. You might encounter wierd collation
results (sorting/comparing) because UTF-8 encompasses all Unicode
character sets, so this is best used when you sort/search on
keys in a normal (latin1) character set.
Echt netjes is dit niet, een unicode-aware database werkt natuurlijk beter. :)

[ Voor 11% gewijzigd door Onno op 26-05-2003 21:27 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
offtopic:
noem jij Onno ? ik Ook :) en aangezien ik belg ben ben jij de eerste andere Onno die ik 'ontmoet' :) Maar voor een nederlander wel normaler

  • Onno
  • Registratie: Juni 1999
  • Niet online
offtopic:
Ik als Nederlander heet Onno hoor. En er zijn meer Belgische Onno's hoor, ik ken er tenminste een. :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mysql 3.x kent iig geen multibyte stringsupport en dus ook geen unicode. Een van de weinige oplossingen is om de strings eerst naar een gewone asci-representatie om te zetten en later terug te converteren. Maar echt een goede of bruikbare oplossing is dat niet.

Is het niet mogelijk voor je om naar postgresql over te stappen? Deze kent wel multibyte support (mits je dat meecompileert) en heeft, voor zover ik begrepen heb, ook een uitgebreidere en stabielere (jdbc3 bijna volledig) jdbc-driver.

offtopic:
Onno is idd niet echt een gebruikelijke naam en komt geloof ik vooral voor in Noordelijk Nederland (?)

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
bedankt beide - wel echt belachelijk dat ie dat niet kan - verklaart waarom sommige tekens de mist in gaan. Dus die mensen denken dat ascii genoeg is ofzo? ik denk dat we de tekst gaan HTML encoden dan maar - pff - Postgresql gaan we nu niet meer beginnen , (we zijn aan het bugfixen dus geen 'nieuw' features :). Het verbaast me toch steeds weer hoe weinig er eigenlijk werkt :) met Open Source. Windows NT is al zo lang unicode (altijd geweest) en dan nog met ascii afkomen ... nu goed kunnen we ineens het wat is een 'return' in mySQL oplossen door er html tekst van te maken...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

hobbit_be schreef op 27 mei 2003 @ 12:07:
Dus die mensen denken dat ascii genoeg is ofzo?
Mja... Jij moest zo nodig mysql gebruiken voor iets waar je unicode support voor nodig hebt. Dat jij niet naar de capabilities van mysql keek is toch echt je eigen fout. :X ;)
Het verbaast me toch steeds weer hoe weinig er eigenlijk werkt :) met Open Source.
Huh, doordat er iets niet in mysql werkt is het gelijk heel open source waar iets niet werkt :?
Er zijn drie andere opensource databases waar het wel werkt, Postgresql, Firebird en SAPdb.
MySQL heeft zich gewoon al die jaren (te, ik denk van wel) veel gericht op performance en te weinig op functionaliteit en dergelijke.
En dan is het grootste nadeel daarbij dat mysql als 'de' open source database wordt gepromoot, ipv 'een' open source database. :)
Windows NT is al zo lang unicode (altijd geweest) en dan nog met ascii afkomen ...
Unicode was toch geintroduceerd bij unices? Linux kan het iig ook al een tijdje gebruiken... Maar wat heeft het kunnen gebruiken van unicode in NT te maken met mysql? :P
Dat het in MSSQL kan is evt nog enigszins vergelijkbaar (maar daar betaal je wel wat meer aan licenties voor enzo).

  • Onno
  • Registratie: Juni 1999
  • Niet online
hobbit_be schreef op 27 May 2003 @ 12:07:
Het verbaast me toch steeds weer hoe weinig er eigenlijk werkt :) met Open Source.
Dat heeft niets met open source te maken, maar met MySQL. PostgreSQL is net zo open source, en ondersteunt wel gewoon allerlei tekensets. (en andere nuttige features die MySQL niet ondersteunt :+)
Unicode wordt in heel veel andere open source dingen ook gewoon ondersteund. Wat dacht je van Linux? X? KDE? OpenOffice?

(MSSQL en Oracle hebben trouwens ook nog maar vrij kort volledige unicode support volgens mij)
ACM schreef op 27 mei 2003 @ 11:56:
offtopic:
Onno is idd niet echt een gebruikelijke naam en komt geloof ik vooral voor in Noordelijk Nederland (?)
offtopic:
Afgaande op de 'nick' maar 3x zo weinig Onno's als Arjens op tw.n. Valt mee toch? En bij google is het verschil nog maar 70k vs. 104k. :)

[ Voor 7% gewijzigd door Onno op 27-05-2003 12:22 ]


  • xoror
  • Registratie: November 1999
  • Niet online
je vergelijkt een OS met een db ? euhm logisch....
er werd al aangegeven dat andere (ook opensource) db's prima kunnen omgaan
met unicode. Dat jullie niet van tevoren goed geinventariseerd hebben, is jullie eigen fout. Beetje sneu om dat op opensource af te schuiven.

Mitsubishi Warmtepomp Uitlezen / Besturen | Optimaliseren


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Onno schreef op 27 May 2003 @ 12:17:
offtopic:
Afgaande op de 'nick' maar 3x zo weinig Onno's als Arjens op tw.n. Valt mee toch? En bij google is het verschil nog maar 70k vs. 104k. :)
Hehehe, ik weet dat Arjen ook niet zoveel voorkomt :P

Magoed, laten we nou niet met ons allen hobbit_be aanvallen, ik gok dat ie het niet echt zo bedoelde :)

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
xoror schreef op 27 May 2003 @ 12:17:
je vergelijkt een OS met een db ?
ok niet echt he :) gewoon aanduiden dat 'het' database dat het meeste voorkomt iets heel eenvoudigs (ie 1 byte -> 2 byte) niet aankan. Dat we dat niet wisten is idd onze schuld. (ons probleem is op het moment het euro character dat zomaar liefst op 4 manieren word encode/decode :)

Over OpenSource rant :) - komt voor om 4 maanden te vechten en uiteindelijk van allemaal open-source (read: Jakarta) crap vol met bugs en memory leaks - dat mySQL nog voor problemen zou zorgen hadden we echt niet verwacht :) (ik had het aangeraden omdat ik in mijn PHP tijd er nooit problemen mee had). Ik wil dus niet alles over een kant trekken :). (sorry als dat zo overkwam)

Forgive the musings of an old man :)

offtopic:
onno is een friese naam. en naar het schijnt word het uitgesproken als onne. vond het gewoon gek om je eigen naam te zien (want als Onno in mijn landje is dat dus nog nooit gebeurt :) )

  • Onno
  • Registratie: Juni 1999
  • Niet online
Sorry dat ik weer alleen iets off-topics zeg, maar dit moet echt even rechtgezet worden hoor. :P
hobbit_be schreef op 27 May 2003 @ 12:29:
offtopic:
onno is een friese naam. en naar het schijnt word het uitgesproken als onne. vond het gewoon gek om je eigen naam te zien (want als Onno in mijn landje is dat dus nog nooit gebeurt :) )
offtopic:
Friezen heten Onne, niet Onno. Onno wordt echt met een ooooo uitgesproken. Ook daar.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

offtopic:
Onno en Onne zijn bij mijn weten verschillende namen ;) Ik heb zelfs het idee dat Onno meer Gronings is, Onne is idd zo Fries als het maar kan en ik geloof dat ik zelfs iemand kende bij mijn ouders in het dorp die zo heet (en dan echt min of meer als honne uitspreken, zonder de h te noemen)


Sja, OS is niet altijd perfect, maar dat is gewoon betaalde software ook, helaas, lang niet altijd.
Er zijn projecten die wel goed zitten, zoals Linux en Apache zelf. En blijkbaar ook een stel die na lang wachten nog steeds Alpha zijn :)

[ Voor 23% gewijzigd door ACM op 27-05-2003 12:37 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Onno schreef op 27 May 2003 @ 12:35:
offtopic:
Friezen heten Onne, niet Onno. Onno wordt echt met een ooooo uitgesproken. Ook daar.
offtopic:
Verdomme, weer een illusie minder :) vond Onne leuker om te horen dan die O op het einde :) - is die Herman Finkers dan fries/gronings/anders? - en is groningen en omstreken een leuke plaats (tja nu moet ik dat toch echt weten he)? Zelf ben ik Antwerpenaar en ben nog nooit hoger dan Amsterdam geraakt (toch niet op nederlandse bodem)

  • Onno
  • Registratie: Juni 1999
  • Niet online
hobbit_be schreef op 27 May 2003 @ 12:42:
is die Herman Finkers dan fries/gronings/anders?
Die komt uit Almelo, en da's te horen.
en is groningen en omstreken een leuke plaats (tja nu moet ik dat toch echt weten he)?
Uiteraard. Zitten hier niet voor niets zoveel studenten. :)

[ Voor 3% gewijzigd door Onno op 27-05-2003 12:50 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
nog effe een update (ontopic) we hebben nu een unicode convertor geschreven ie alle non-ansi/ascii worden geschreven naar html unicode entity &#..... ; en vice versa...

  • Onno
  • Registratie: Juni 1999
  • Niet online
Dat kost waarschijnlijk een stuk meer ruimte dan UTF-8 gebruiken op de manier die de readme beschrijft. :)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-08 17:28

alienfruit

the alien you never expected

Ja, man Herman Finkers komt uit Almelo. En volgens mij komt alle schaarse namen uit het noorden. Afgezien daarvan waarom zou je Firebird willen gebruiken, die heeft nog meer bugs als Borland Interbase :(

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
maar de readme werkt niet :) we hebben nog vanalles geprobeert. uiteindelijk moet het gewoon werken en zijn de speciale unicode chars (ie we gebruiken alleen engels als taal) er gelukkig niet vaak...

Vraag ik me ad hoe html eigenlijk chinese chars 'encodeert' ?

  • Onno
  • Registratie: Juni 1999
  • Niet online
Als je een tekenset gebruikt die die tekens niet zelf ondersteunt, op dezelfde manier: met &#nummertje;. Maar meestal wordt gewoon een handige tekenset gebruikt.

(voorbeeld: http://www.news.cn)

[ Voor 11% gewijzigd door Onno op 27-05-2003 15:28 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

offtopic:
natuurlijk blijft Sylvester nog altijd de mooiste naam die er is :+

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
.oisyn schreef op 27 mei 2003 @ 15:41:
offtopic:
natuurlijk blijft Sylvester nog altijd de mooiste naam die er is :+
offtopic:
seffens gaan we hier nog mooie naampjes voor babietjes uitwisselen. zullen we het topic veranderen naar 'offtopic' ? :)

Sylvester? Rot dat je admin bent nu moet ik braaf blijven ;)

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-08 17:28

alienfruit

the alien you never expected

Haha. Mijn naam stond eerst niet eens in die baby naam boekjes tot ik de uitgever een brief schreef :p

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

hobbit_be schreef op 27 May 2003 @ 15:48:
offtopic:
Sylvester? Rot dat je admin bent nu moet ik braaf blijven ;)
offtopic:
Je hebt mijn toestemming :+
Hij kan jou niet bannen, ik hem wel >:) ;)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

offtopic:
moet ik nou bang worden voor iemand die "Arjen" heet? Pffff laat me niet lachen :P ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
alienfruit schreef op 27 mei 2003 @ 15:59:
Haha. Mijn naam stond eerst niet eens in die baby naam boekjes tot ik de uitgever een brief schreef :p
offtopic:
wie noemt zijn kind ook alienfruit? :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

offtopic:
De ouders van alienfruit denk ik :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Haaaalo! Moet dit naar de HK oid? :Y)

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

jammer dat dit topic zo vern*kt wordt :/
ik zelf heb namelijk eenzelfde probleem, en hoopte eik op een oplossing :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Er staat toch een 'oplossing' :?

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

ACM schreef op 27 May 2003 @ 20:15:
Er staat toch een 'oplossing' :?
ja, precies een 'oplossing' ;)
maar dan moet ik dus mijn hele code (weer) opnieuw gaan schrijven enkel en alleen voor de euro enzo :?
(upgraden van mySQL zal lastig worden btw)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nou, blijkbaar wel. Want mysql kent iig geen multibyte support, wat er op GoT gedaan wordt is overigens domweg de -15 character encoding uitspugen in php, ipv de -9 (oid).

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

o, wacht ikzelf kan dit sowiso niet oplossen |:(
die tekens kunnen helemaal niet @ irc |:(
sorry, ga dan maar weer verder offtopic, ik heb niets gezegt :X

  • Onno
  • Registratie: Juni 1999
  • Niet online
Erkens schreef op 27 May 2003 @ 20:33:
o, wacht ikzelf kan dit sowiso niet oplossen |:(
die tekens kunnen helemaal niet @ irc |:(
Jawel. Voor IRC kun je zo'n beetje elke tekenset wel gebruiken, alleen werkt dat natuurlijk alleen maar echt lekker als de rest dezelfde gebruikt. mIRC gebruikt domweg altijd de 'codepage' (huuuuh) van je Windows, waardoor een mIRC op een Zweedse Windows andere tekens verstuurt dan een mIRC op een Nederlandse Windows, enz. (wordt een rommeltje dus)

Maar in de betere clients kun je de te gebruiken tekenset gewoon instellen, en dus ook bijv. UTF-8 gebruiken.

Werkt nog steeds alleen goed als anderen dat ook doen, het beste is dus om alle speciale tekens te vermijden totdat UTF-8 de default tekenset wordt. :)

[ Voor 15% gewijzigd door Onno op 27-05-2003 20:47 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Onno schreef op 27 May 2003 @ 20:44:
Werkt nog steeds alleen goed als anderen dat ook doen, het beste is dus om alle speciale tekens te vermijden totdat UTF-8 de default tekenset wordt. :)
hmm, dus als ik met mirc een euro stuur, dan komt die bij mijn botje aan als "?"
dus ik heb er niets aan :)

  • Onno
  • Registratie: Juni 1999
  • Niet online
Meestal verstuurt mIRC een euro als teken 128. Dat je een ? krijgt ligt waarschijnlijk aan de tekenset van je InputStream (of wat je dan ook maar gebruikt), waar 128 niet in voorkomt. (logisch, 128 is geen euro, dat is een Microsoft verzinsel)

Misschien dat je Win1251 (oid) kunt instellen als tekenset, alhoewel me dat niet echt waarschijnlijk lijkt. :)

[ Voor 19% gewijzigd door Onno op 27-05-2003 20:54 ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Onno schreef op 27 mei 2003 @ 20:53:
Misschien dat je Win1251 (oid) kunt instellen als tekenset, alhoewel me dat niet echt waarschijnlijk lijkt. :)
mja, ik gebruik een pircbot implementatie, en ach zo boeiend is het niet, en tevens offtopic want het heeft niet met mysql te maken (achteraf gezien :P)

maargoed, weer ontopic: namen, ik heet "gewoon" Michael", die naam komt overal wel voor :P

  • jochemd
  • Registratie: November 2000
  • Laatst online: 08-08 15:51
Erkens schreef op 27 May 2003 @ 20:17:

maar dan moet ik dus mijn hele code (weer) opnieuw gaan schrijven enkel en alleen voor de euro enzo :?
Het moet in principe kunnen om je database intestellen op ISO-8859-1 en je HTML in te stellen als ISO-8859-15 (werkt alleen als de data alleen via het web aangesproken moeten worden).
Als je geen echt unicode support nodig hebt is dat in principe genoeg, maar zelfs dan kan je misschien beter even gaan nadenken over het gebruik van een database abstractielaag. Dan kan je in de toekomst wat makkelijker overstappen als je meer dingen tegenkomt die MySQL niet ondersteunt maar andere dataabses wel.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

jochemd schreef op 27 mei 2003 @ 23:07:
[...]

Het moet in principe kunnen om je database intestellen op ISO-8859-1 en je HTML in te stellen als ISO-8859-15 (werkt alleen als de data alleen via het web aangesproken moeten worden).
Als je geen echt unicode support nodig hebt is dat in principe genoeg, maar zelfs dan kan je misschien beter even gaan nadenken over het gebruik van een database abstractielaag. Dan kan je in de toekomst wat makkelijker overstappen als je meer dingen tegenkomt die MySQL niet ondersteunt maar andere dataabses wel.
maar in mijn geval heb ik niets met html te maken ;)
en het punt is ik krijg het al verkeerd binnen ;)
dus mysql komt niet eens aan de pas :P

  • jochemd
  • Registratie: November 2000
  • Laatst online: 08-08 15:51
Erkens schreef op 27 May 2003 @ 23:15:
[...]

maar in mijn geval heb ik niets met html te maken ;)
Dan heb je dus niet een zelfde probleem. Wat betekent dat je het beste een nieuw draadje kan openen.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

jochemd schreef op 28 May 2003 @ 00:46:
[...]
Dan heb je dus niet een zelfde probleem. Wat betekent dat je het beste een nieuw draadje kan openen.
als je even de draad had gelezen dan wist je dat ik al lang zelf had gezegt dat ik fout zat in dit draadje ;)
en op zich hoef ik geen oplossing meer, gewoon pech ;)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Erkens schreef op 28 mei 2003 @ 08:17:
als je even de draad had gelezen dan wist je dat ik al lang zelf had gezegt dat ik fout zat in dit draadje ;)
en op zich hoef ik geen oplossing meer, gewoon pech ;)
Ga dan ook niet zo lopen blaten in deze draad zeg. Daar heeft niemand wat aan :)

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Glimi schreef op 28 mei 2003 @ 08:24:
[...]

Ga dan ook niet zo lopen blaten in deze draad zeg. Daar heeft niemand wat aan :)
ja hallo, ik dacht dat dat er mee te maken had, blijkt achteraf dus niet zo
en btw die hele draad was al offtopic geholpen door de diverse crewleden onder andere, alsof dat van mij wat deelsofftopic de schuld hiervan is :/
lekker zijn jullie |:(

o, en druk maar ff op de delete knop bij mijn posts hier, aangezien die allemaal offtopic en dom geblaat is :/

[ Voor 12% gewijzigd door Erkens op 28-05-2003 08:27 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
hmm effe op een vrolijkere note. Omdat XSLT enorm veel problemen had met het invoegen van Unicode entities zijn we erachter gekomen datdit wel werkt:

code:
1
//localhost/dkitCareers?useUnicode=true&characterEncoding=Cp1252


als db 'jdbc' source. die useUnicode was dus niet genoeg

(ie die is MySQL 3.23.54)

[ Voor 8% gewijzigd door hobbit_be op 28-05-2003 15:59 ]

Pagina: 1