Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[VB6] UTF8 encoding

Pagina: 1
Acties:
  • 195 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik werk met een VB6 DLL waarbij UTF8 bestanden geimporteert/bewerkt worden en waarbij de data wordt opgeslagen in een SQL2000 database in Varchar kolommen.
Voorheen ging dit allemaal redelijk goed omdat de data in ISO formaat binnenkwam. Nu dus in UTF8. Hierdoor worden speciale karakters (trema's e.d.) niet goed opgeslagen.

Naar mijn weten werkt VB6 intern met unicode en wordt daar de UTF8 data al 'verminkt'. Ik zal dus een conversie moeten doen van de data voordat ik ermee aan de slag kan. Mijn vraag is: Hoe kan ik dit het beste doen in VB6 ? En naar welk formaat moet ik converteren ?

Ik hoef geen rekening te houden met VB6 controls als textboxes e.d. want de DLL leest alleen de data in en slaat het op in de DB.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 30-11 19:45

TeeDee

CQB 241

Afaik zal je in je DB ipv met Varchar met NVarchar moeten gaan werken.

Om fatsoenlijk met UTF8 te werken in VB6 zal je de data als ADODB.Stream moeten verwerken. Daar kan je de Encoding aangeven.

Edit:
O, wacht nu zie ik het :)
Je wil voordat je het e.e.a. naar de DLL pompt al een conversie doen?

[ Voor 66% gewijzigd door TeeDee op 05-10-2007 10:38 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Dat is helaas geen optie. Ik weet dat met varchar kolommen een aantal karakters alsnog verminkt zullen zijn, maar het gaat erom dat de meest gangbare karakters wel zichtbaar zijn. (e met trema enzo).

Verwijderd

Topicstarter
TeeDee schreef op vrijdag 05 oktober 2007 @ 10:32:
Edit:
O, wacht nu zie ik het :)
Je wil voordat je het e.e.a. naar de DLL pompt al een conversie doen?
Liefst in de DLL (VB6) zelf.

[ Voor 6% gewijzigd door Verwijderd op 05-10-2007 10:45 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 30-11 19:45

TeeDee

CQB 241

Misschien dat Google je een trap in de goede richting kan geven ;)

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
:) Bedankt, maar ik zit nog met een aantal vragen waardoor ik niet zeker weet wat de juiste oplossing is.
Zoals, als ik een UTF8 bestand in VB6 open, blijft de encoding dan gehandhaafd als ik de inhoud in een variant type inlees ? En als ik de waarde aan een string type toeken ?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

>>PRG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 30-11 19:45

TeeDee

CQB 241

Verwijderd schreef op vrijdag 05 oktober 2007 @ 10:58:
:) Bedankt, maar ik zit nog met een aantal vragen waardoor ik niet zeker weet wat de juiste oplossing is.
Zoals, als ik een UTF8 bestand in VB6 open, blijft de encoding dan gehandhaafd als ik de inhoud in een variant type inlees ? En als ik de waarde aan een string type toeken ?
Dat blijft altijd lastig. Punt is, is dat je daar achter kan komen door te testen.
Bouw een file met alle lastige karakters (gooi er ook nog wat Encoded meuk in) en laat dat lopen.

Ik begrijp dat je hier een Ja of Nee wil horen voordat je aan de slag gaat: dat zal niet gaan :)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 10:50
Voor zover ik weet lezen de vb6 bestandsfuncties alles in ascii. Als je dit aan een string toekent (die 16-bit unicoded is) krijg je per byte in je bestand 1 character (van 2 bytes lang) in je string.
Wil je deze string decoderen van UTF-8 naar een unicode visual basic string, dan moet je daar inderdaad een conversiemethode voor zoeken.
Een functie die ik hier zelf voor gevonden heb gebruikt een combinatie van de visual basic functie StrConv en MultiByteToWideChar.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Verwijderd

Topicstarter
Ok, bedankt voor de informatie. Heb je ook een uitwerking van die functie en hoe je die gebruikt ?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
Ja, F1

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1