skolegutten Skrevet 11. oktober 2006 Del Skrevet 11. oktober 2006 (endret) Som tittelen sier... har en tekstboks, men den takler ikke spesielle tegn. Når jeg prøver å lime inn f.eks. Я, blir det bare til et spørsmålstegn. Vet ikke om dere skjønner hva jeg mener, men er det noen som vet hva problemet kan være? Bruker Visual Basic 6, hvis det har noe å si. Endret 11. oktober 2006 av skolegutten Lenke til kommentar
GeirGrusom Skrevet 11. oktober 2006 Del Skrevet 11. oktober 2006 Visual Basic 6.0 er vel ASCII, dvs. at den bare takler 256 forsjkellige tegn, mens det innebygde tegnsettet i Windows NT (Windows XP blant annet) er Unicode (UTF-16) derfor kan du fint kopiere dette, men Visual Basic programmet ditt tar ikke imot 16-bit tekst-strenger. Jeg aner ikke om du kan gjøre noe med dette. Lenke til kommentar
skolegutten Skrevet 11. oktober 2006 Forfatter Del Skrevet 11. oktober 2006 Det var det jeg mistenkte... dessverre er det helt essensielt for programmet mitt at man må kunne skrive inn et hvilket som helst tegn... så da sliter jeg. =/ Lenke til kommentar
Harald Staff Skrevet 11. oktober 2006 Del Skrevet 11. oktober 2006 Det ser ut som en RichTextBox håndterer det. HTH. Beste hilsen Harald Lenke til kommentar
skolegutten Skrevet 11. oktober 2006 Forfatter Del Skrevet 11. oktober 2006 Ser man det, det løste jo hele problemet! Tusen takk! Lenke til kommentar
aadnk Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 Visual Basic 6.0 er vel ASCII, dvs. at den bare takler 256 forsjkellige tegn, mens det innebygde tegnsettet i Windows NT (Windows XP blant annet) er Unicode (UTF-16). 7048615[/snapback] Visual Basic 6.0 støtte Unicode, da den internt benytter BSTR med UTF-16. Siden problemet ble løst ved å bytte kontroll, vil jeg tro det er de innebyggede kontrollene som ikke støtter Unicode (dersom riktig skrifttype har blitt benyttet). Lenke til kommentar
GeirGrusom Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 Men... er ikke string datatypen 8-bit da? siden du må bruke convert funksjonen for å lage Unicode stringer hvis du skal passe det til funksjoner.... Lenke til kommentar
aadnk Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 Men... er ikke string datatypen 8-bit da? siden du må bruke convert funksjonen for å lage Unicode stringer hvis du skal passe det til funksjoner.... 7055881[/snapback] Nei, dette er fordi VB automatisk konverterer BSTR (i VB 3, HLSTR) til en null-terminert ASCII-streng før den sendes til API. Av og til, når en skal sende en Unicode-streng, og ikke en ASCII-streng, til en API, konverterer man UTF-16-strengen til UTF-16 igjen (slik at hver karakterer blir 32-bit), som så konverteres tilbake til UTF-16 når API-funksjonen kalles. Dette er jo såklart fryktelig bakvendt, for ikke å nevne grusomt rent ytelsesmessig. En annen vei rundt dette er å bruke StrPtr og ByVal, men da må en ofte også legge til en nullkarakter ettersom BSTR ikke er nullterminert. Lenke til kommentar
skolegutten Skrevet 14. oktober 2006 Forfatter Del Skrevet 14. oktober 2006 Nytt problem... selv om tekstboksen håndterer de mer eksotiske tegnene, blir de fremdeles konvertert til spørsmålstegn når jeg legger tekstboksens innhold inn i en String-variabel. Hvordan ordnes dette? Må jeg benytte meg av en annen datatype? Lenke til kommentar
Harald Staff Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 Dette var vrient, jeg har lest mye uten å finne Selve Løsningen. Så langt; String internt er visst Unicode og det skal være null problem å håndtere de dateene. Men det er ut igjen fra string-variabelen til whatever som er trøblete. Og da gjelder det kanskje å temme konverteringsfunksjonen StrConv, som har parametre til og fra Unicode, men jeg har ikke fått eksemplene til å virke tilfredsstillende hittil. Mange andre eksempler bruker bytearray istedetfor string. Dim Unicodesetning as Byte() men jeg får ?ene ut av dette også. Dette er riktig lærerikt, men jeg har ingen hjelp til deg enn så lenge. Beste hilsen Harald Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå