>>Why does C# char = (char)134 return different value character than VFP char(134)?
>>
>>UPDATE. I understand why but have not found the way to resolve my issue. I need to get a character (in .NET program) (for number 134 or higher) that match exactly the character that VFP gets when using char(134) and such.
>>Any suggestion, please let me know. Except I cannot change the VFP code.
>
>
>Since .net uses UTF-16 to store a char ( one char = 2 bytes ), you do not encode chars
>
>When chars are stored to a file, they are first converted to a sequence of bytes (1, 2, 3 or 4 depending on the char and the encoding utf8, utf16, single byte char set, double byte chars set) and the byte sequence is written to the file
>This means that a file does not contain chars, but bytes
>
>You convert the chars to a byte array first, using an encoding, then encode the byte array
>
>Supposing your code page in vfp is 1252
>
>
> internal static void Go()
> {
> // from byte to string
> byte[] src = new byte[] { 134 };
> string p = Encoding.GetEncoding(1252).GetString(src);
>
> // from string to bytes
> string s = "†"; // chr(134) in 1252 codepage
>
> byte[] bytes = Encoding.GetEncoding(1252).GetBytes(s);
>
> }
>
I re-read your code example and I see the solution there for me. Thank you!
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham