0

I want to use Unicode in my code. My Unicode value is 0100 and I am adding my Unicode string \u with my value. When I use string myVal="\u0100", it's working, but when I use like below, it's not working. The value is looking like "\\u1000";. How do I resolve this?

I want to use it like the below one, because the Unicode value may vary sometimes.

string uStr=@"\u" + "0100";

1 Answer 1

3

There are a couple of problems here. One is that @"\u" is actually the literal string "\u" (can also be represented as "\u").

The other issue is that you cannot construct a string in the way you describe because "\u" is not a valid string by itself. The compiler is expecting a value to follow "\u" (like "\u0100") to determine what the encoded value is supposed to be.

You need to keep in mind that strings in .NET are immutable, which means that when you look at what is going on behind the scenes with your concatenated example (`@"\u"+"0100"), this is what is actually happening:

  1. Create the string "\u"
  2. Create the string "0100"
  3. Create the string "\u0100"

So you have three strings in memory. In order for that to happen all of the strings must be valid.

The first option that comes to mind for handling those values is to actually parse them as integers, and then convert them to characters. Something like:

var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier);

Which will give you the single Unicode character value. From there, you can add it to a string, or convert it to a string using ToString().

Sign up to request clarification or add additional context in comments.

3 Comments

thanks, i just want to assign the value \u0100 to my string variable,thats it. but my unicode value are stores as string like this 0100,0200, i just want to change it as unicode by adding \u,and need to assign it to my string variable like this \u0100. how can i do that.
great thanks, its working, but can u explain this. without specifying \u, how it takes the value 0100 as an unicode???
Thank you @Robert. @deep it's all numbers under the covers...it just so happens that specifying a unicode character is done by giving the hexadecimal value of the unicode character.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.