我试图将char数组转换为字节数组。
char[] cc = new char[] { ((char)(byte)210) }; // Count = 1
byte[] b = System.Text.Encoding.UTF8.GetBytes(cc); // Count = 2
转换导致我的字节数组{195, 146}
有2个条目
我猜这是编码的问题。任何帮助表示赞赏。
面对一些问题后,为了测试,我已经写了这两行,所以不介意这种风格。
由于
答案 0 :(得分:1)
UTF-8可以使用多个字节来存储字符。它只使用一个字节表示0-127范围内的ASCII字符,其他字符需要存储两个或多个字节。
您正在编码ASCII字符210
,它来自扩展的ASCII字符(数值> 127),UTF-8使用两个字节来存储此字符。
答案 1 :(得分:0)
正如M.kazemAkhgary在上述评论中所说:
cc.Select(c=>(byte)c).ToArray();
线索是铸造而不是使用转换。谢谢你!