如何在C#中将unicode转换为单字节?

时间:2010-04-12 20:17:17

标签: c# unicode char

如何在C#中将unicode转换为单字节?

这不起作用:

int level =1;
string argument;
// and then argument is assigned

if (argument[2] == Convert.ToChar(level))
{
    // does not work
}

而且:

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

产生时髦的结果。 test1可以是: 49 '1' ,而test2将是 1 ''

4 个答案:

答案 0 :(得分:3)

  

如何在C#中将unicode转换为单字节?

这个问题毫无意义,示例代码只会让事情变得更糟。

Unicode是从字符到代码点的映射。代码点的编号从0x0到0x10FFFF,这远远超过可以存储在单个字节中的值。

示例代码包含intstringchar。在任何地方都没有byte

你真的想做什么?

答案 1 :(得分:2)

使用UnicodeEncoding.GetBytes()

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

答案 2 :(得分:1)

charstring在.NET中始终是Unicode。你无法按照自己的方式去做。

事实上,你想要完成什么?

答案 3 :(得分:1)

如果要测试int 级别是否与char 参数[2] 匹配,请使用

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