开发者

How do I convert from unicode to single byte in C#?

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 thi开发者_开发知识库s:

char test1 = argument[2];
char test2 = Convert.ToChar(level);

produces funky results. test1 can be: 49 '1' while test2 will be 1 ''


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 bytes anywhere.

What are you really trying to do?


Use UnicodeEncoding.GetBytes().

UnicodeEncoding unicode = new UnicodeEncoding();
Byte[] encodedBytes = unicode.GetBytes(unicodeString);


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?


If you want to test whether the int level matches the char argument[2] then use

  if (argument[2] == Convert.ToChar(level + (int)'0'))
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜