• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 675
  • Last Modified:

C#, problem with Unicode conversion. (.NET 4)

I just can't get this working.

I have a string read from a source, for example "0038003800380038" which is Unicode. Thing is that the Unicode escape character is missing. I want to convert it to ASCII (8888). How do I do it?

"0038003800380038" -> "\u0038\u0038\u0038\u0038" -> "8888"
0
jerra
Asked:
jerra
  • 3
  • 2
1 Solution
 
HugoHiaslCommented:
The problem with unicode is that you cannot be sure that there are always 4 digits per character.

string oldString = "003800380038";
string newString = "";

for (int i=0; i < oldString.Length;i++) .{

}

0
 
HugoHiaslCommented:
Sorry.. I hit the wrong keys so it was sent too early. I would try something like this:

            string oldString = "003800380038";
            string newString = "";

            while (oldString.Length >= 4) {
                newString += ("\\u" + oldString.Substring(0,4));
                oldString = oldString.Substring(4);
            }
0
 
jerraAuthor Commented:
Sorry I have been too vague.
The problem is not adding the escape char. The problem is getting the string converted to "8888". If I would output newString it would just show "\u0038".
All Unicode (utf16) characters are represented by hexadecimal numbers from 0000 to FFFF (in my case).
0
 
HugoHiaslCommented:
Hmm ok... Should be done by this:


string oldString = "003800380038";
            List<byte> byteList = new List<byte>();

            while (oldString.Length >= 4) {
                byteList.Add(Byte.Parse(oldString.Substring(2,2),System.Globalization.NumberStyles.HexNumber));
                byteList.Add(Byte.Parse(oldString.Substring(0,2),System.Globalization.NumberStyles.HexNumber));
                oldString = oldString.Substring(4);
            }

            Byte[] bytes = byteList.ToArray<Byte>();
            Encoding enc = Encoding.GetEncoding("utf-16");
            string output = enc.GetString(bytes, 0, bytes.Length);

Open in new window

0
 
jerraAuthor Commented:
Thanks!
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now