String translation

A

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
 
M

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]



al jones said:
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
 
A

al jones

Wish I could, these are random access reads within the file. Thanks for
the thought. //al

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 said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top