Hej, Hej Per, >Varje UNICODE-tecken är två bytes så det kan mycket väl vara detta som är problemet. Nu är jag ingen expert på Unicode men efter att ha läst på lite på http://en.wikipedia.org/wiki/Unicode så inser jag att det finns flera olika encodings av unicode. .Net använder UTF-16 som är sexton bitar eller två bytes och det var detta jag syftade på (eftersom jag inte visste att det fanns andra encodings). >UTF-16 refererar väl då alltså till en delmängd av dessa Svar till Per H,Kina
Har problem med ett program (VB 6.0) som ska användas i Kina med Windows XP. Datorn har en nationell inställning som är Kina(PRC). Problemet är när jag ska läsa en fil som är öppnad som "Binary" eller "Input".
För att läsa ett tecken använder jag följande rad: MyChar = Input(1, #1) ' Get one character.
Jag gissar att det har att göra med "UniCode" eller är det något annt? Programet fungerar bra med Svenska eller Engelska(USA) som nationell inställning.
Mvh
BertSv:Kina
Tack för ditt svar. Jag har också kommit fram till att det är två bytes. Men hur jag löser själva problemet i programkoden är fortfarande en fråga.Sv:Kina
Det finns ju c:a 1 miljon olika tecken definierade i UNICODE så 2 bytes lär ju inte räcka långt.
Vad är det du skall läsa för något? Är det en text eller binärdata? Innehåller texten enbart ascii-tecken eller innehåller den andra tecken.Sv: Kina
Sedan såg jag i .Net-dokumentationen att det faktiskt finns en 21-bitars teckentabell (max 2 097 152 olika tecken) där alla unicode-tecken är definierade och UTF-16 refererar väl då alltså till en delmängd av dessa beroende på, antar jag, vilken "CultureInfo" man använder. Typ SE-SV för Sverige o s v.
Hoppas att jag inte fått allt om bakfoten, som sagt, det här är inte mitt område egentligen.Sv:Kina
Inte riktigt. UTF-16 innehåller alla unicode-tecken men vissa använder mer än 2 bytes.Sv: Kina
Filen jag ska läsa är en datafil med i princip alla tecken upp till 255 (1 byte). Filen är inte stor, cirka 300 tecken. Vissa tecken är kontrolltecken och får inte användas. Dessa tecken skrivs om med ESC (27) före och därefter adderas 32 till det tecken som inte får användas.