Home All Groups Group Topic Archive Search About
Author
30 Jul 2006 3:51 AM
al jones
I'm reading data from several font file files (designer / copyright / etc)

Several of the strings begin with a chr(63) <might be chr(65) I don't have
one open at the moment> and appear to be unicode (2 bytes per char).
Several begin with chr(255) and appear to be charW <??> (four bytes per
char)

Most of these appear to be just ascii srings (in presumably different
encoding) as I can read them if I open the font in font browser, the
designer name for example.

I've tried:
>         Dim unicodeBytes As Byte() = [unicode].GetBytes(strIn)
>         Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii, unicodeBytes)
>         Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)) As Char
>         ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
>         Dim asciiString As New String(asciiChars)
>         Return asciiString

I'm getting nothing sensible back.  Is the initial character (63 / 255) I'm
seeing part of the string? Any suggestions on how to make this conversion
work as I'd like it to?

Thanks //al

Author
30 Jul 2006 11:21 AM
Michel Posseth [MCP]
The stream reader can detect the byte order mark by itself   use this option
when reading files where you do not know for sure what the encoding is


regards

Michel Posseth [MCP]



Show quoteHide quote
"al jones" <alfredmjo***@shotmail.com> schreef in bericht
news:67tpu8fe09z8$.15aiuevlxnwkg$.dlg@40tude.net...
> I'm reading data from several font file files (designer / copyright / etc)
>
> Several of the strings begin with a chr(63) <might be chr(65) I don't have
> one open at the moment> and appear to be unicode (2 bytes per char).
> Several begin with chr(255) and appear to be charW <??> (four bytes per
> char)
>
> Most of these appear to be just ascii srings (in presumably different
> encoding) as I can read them if I open the font in font browser, the
> designer name for example.
>
> I've tried:
>>         Dim unicodeBytes As Byte() = [unicode].GetBytes(strIn)
>>         Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii,
>> unicodeBytes)
>>         Dim asciiChars(ascii.GetCharCount(asciiBytes, 0,
>> asciiBytes.Length)) As Char
>>         ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
>>         Dim asciiString As New String(asciiChars)
>>         Return asciiString
>
> I'm getting nothing sensible back.  Is the initial character (63 / 255)
> I'm
> seeing part of the string? Any suggestions on how to make this conversion
> work as I'd like it to?
>
> Thanks //al
Author
31 Jul 2006 3:48 AM
al jones
Wish I could, these are random access reads within the file.  Thanks for
the thought. //al

On Sun, 30 Jul 2006 13:21:32 +0200, Michel Posseth  [MCP] wrote:

Show quoteHide quote
> The stream reader can detect the byte order mark by itself   use this option
> when reading files where you do not know for sure what the encoding is
>
> regards
>
> Michel Posseth [MCP]
>
> "al jones" <alfredmjo***@shotmail.com> schreef in bericht
> news:67tpu8fe09z8$.15aiuevlxnwkg$.dlg@40tude.net...
>> I'm reading data from several font file files (designer / copyright / etc)
>>
>> Several of the strings begin with a chr(63) <might be chr(65) I don't have
>> one open at the moment> and appear to be unicode (2 bytes per char).
>> Several begin with chr(255) and appear to be charW <??> (four bytes per
>> char)
>>
>> Most of these appear to be just ascii srings (in presumably different
>> encoding) as I can read them if I open the font in font browser, the
>> designer name for example.
>>
>> I've tried:
>>>         Dim unicodeBytes As Byte() = [unicode].GetBytes(strIn)
>>>         Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii,
>>> unicodeBytes)
>>>         Dim asciiChars(ascii.GetCharCount(asciiBytes, 0,
>>> asciiBytes.Length)) As Char
>>>         ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
>>>         Dim asciiString As New String(asciiChars)
>>>         Return asciiString
>>
>> I'm getting nothing sensible back.  Is the initial character (63 / 255)
>> I'm
>> seeing part of the string? Any suggestions on how to make this conversion
>> work as I'd like it to?
>>
>> Thanks //al