Reputation: 9479
How do I convert from unicode to single byte in C#?
This does not work:
int level =1;
string argument;
// and then argument is assigned
if (argument[2] == Convert.ToChar(level))
{
// does not work
}
And this:
char test1 = argument[2];
char test2 = Convert.ToChar(level);
produces funky results. test1
can be: 49 '1'
while test2
will be 1 ''
Upvotes: 0
Views: 3440
Reputation: 59463
How do I convert from unicode to single byte in C#?
This question makes no sense, and the sample code just makes things worse.
Unicode is a mapping from characters to code points. The code points are numbered from 0x0 to 0x10FFFF, which is far more values than can be stored in a single byte.
And the sample code has an int
, a string
, and a char
. There are no byte
s anywhere.
What are you really trying to do?
Upvotes: 3
Reputation: 273244
If you want to test whether the int level matches the char argument[2] then use
if (argument[2] == Convert.ToChar(level + (int)'0'))
Upvotes: 1
Reputation: 7153
Use UnicodeEncoding.GetBytes().
UnicodeEncoding unicode = new UnicodeEncoding();
Byte[] encodedBytes = unicode.GetBytes(unicodeString);
Upvotes: 2
Reputation: 161773
char
and string
are always Unicode in .NET. You can't do it the way you're trying.
In fact, what are you trying to accomplish?
Upvotes: 1