[Mono-list] C# Hexadecimal Escape Char Anomalies???

A Rafael D Teixeira rafael.teixeirabr@terra.com.br
Mon, 23 Feb 2004 10:36:01 -0300

Matthew Franz wrote:

        I realize this is a C# issue but can one create "binary strings"
        in C# using
        string="\xff\x00\x00\xff" used by C/Python?
        Why do my 0xff's get translated to 0x3f's???
Well, you are forgetting that C# strings are Unicode (UTF-16 encoded)
and when output to any stream it will be converted to that stream's
encoding. In the case of the console the output encoding is governed by
the LANG environment variable. See:
[rafael@redhat9]$ export LANG=en_US
[rafael@redhat9]$ mono bobo.exe | od -h
0000000 ffff
[rafael@redhat9]$ export LANG=en_US.UTF-8
[rafael@redhat9]$ mono bobo.exe | od -h
0000000 bfc3 bfc3

where the source is:

[rafael@redhat9]$ cat bobo.cs
using System;
class SimpleTest
        public static void Main (String[]args)
                String bobo = "\xFF\xFF";
                System.Console.Write (bobo);

Note: When outputting to a stream you are creating, you can choose what
encoding the stream will use, so you have better control of the
situation than with the console.

Hope it helps,
Rafael "Monoman" Teixeira 
Mono Hacker since 16 Jul 2001 - http://www.go-mono.org/
Mono Brasil Founding Member - http://monobrasil.redesolbrasil.org/
English Blog: http://monoblog.blogspot.com/
Brazilian Portuguese Blog: http://monoblog.weblogger.terra.com.br/