[JS & JAVA] unicode probleem

Pagina: 1
Acties:

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 04-05 13:54
ik heb een textarea met hierbij een javascript functie die controleert ofdat het maximum aantal karakters in het textveld niet overschreden is. Hiervoor gebruik ik de length methode op de inhoud van het textveld.

Het maximum aantal karakaters in het textveld komt overeen met het maximum aantal karakters die ik in de databank kan opslaan.

Als er dus een text ingevoerd wordt (bv via copy/paste) dan knipt ie de inhoud ervan af totdat die juist in het textveld past. MAAR als er nu in die tekst een unicode karakter zit (bv een smiley die word automatisch vormd wanneer er :) ) geschreven wordt dan telt deze length methode dit als 1 karakter (ziet er in het tekstveld uit als een vierkant blokje).

maar als ik nu wegschrijf naar de databank, dan telt dit unicode karakter als 2 ascii karakters, met als probleem dat ik dus bij het inserten in de databank teveel data wil ingeven dan war er voorzien is.

wat ik nu wilde weten hoe je dit best oplost? Het detecteren van unicode karakters is niet zo voor de hand liggend.

Zou ik dit best server/ clientside oplossen ? En hoe aanpakken ?

ik heb al gedacht aan javascript encode enzo, maar dit verhelpt het probleem niet, want zo kan ik de tekst onmogelijk in de databank opslaan (en zelfs erger, zorgt ervoor dat er nog minder tekst opgeslagen wordt in de databank)

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:19

crisp

Devver

Pixelated

Ik denk dat je per karakter zal moeten gaan kijken of de karaktercode groter dan x00FF is, en die karakters x 2 tellen.

Intentionally left blank


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 04-05 13:54
daar vreesde ik al voor... zal niet echt performant zijn, want er kunnen tot 16.000 karakaters in het textvlak geplaatst worden...

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Wat voor DB gebruik je, want oracle bied bijvoorbeeld de mogelijkheid dat je ipv:

COLUMN VARCHAR2(200)

kan opgeven hoeveel feitelijke karakters je wilt opslaan. Hierdoor kan je nooit het probleem krijgen wat je nu hebt met UNICODE karakters.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 04-05 13:54
ronaldmathies schreef op donderdag 03 maart 2005 @ 13:08:
Wat voor DB gebruik je, want oracle bied bijvoorbeeld de mogelijkheid dat je ipv:

COLUMN VARCHAR2(200)

kan opgeven hoeveel feitelijke karakters je wilt opslaan. Hierdoor kan je nooit het probleem krijgen wat je nu hebt met UNICODE karakters.
het is een DB2/AS400 databank, ik zou het es moeten opzoeken of deze zoiets ondersteunt, maar ik vrees ervoor :(

"Live as if you were to die tomorrow. Learn as if you were to live forever"