【发布时间】:2015-02-27 10:45:58
【问题描述】:
我有一串位,像这样string str = "0111001101101000" 是字母“sh”。
我需要用它制作 Unicode 字母。我正在做以下事情:
BitArray bn = new BitArray(str.Length); //creating new bitarray
for (int kat = 0; kat < str.Length; kat++)
{
if (str[kat].ToString() == "0")//adding boolean values into array
{
bn[kat] = false;
}
else
bn[kat] = true;
}
byte[] bytes = new byte[bn.Length];//converting to bytes
bn.CopyTo(bytes, 0);
string output = Encoding.Unicode.GetString(bytes); //encoding
textBox2.Text = output; // result in textbox
但输出文本完全是一团糟。怎么做才对?
【问题讨论】:
-
预期的结果是什么?
-
正如我所说,“这是字母“sh”。”,所以,我期待字母“sh”。我得到了问号、象形文字等。
-
您使用的是什么编码? “sh”的UTF8给我“1100111000010110”,代码在这里,ideone.com/UdvG6r
-
您可以在下面的答案中看到我做错了什么。
-
基本上你的字符串是 UTF8 的字节序错误。