在 c++ 中,我有常规char
(类似于 'J' '0' 等)。Marshal.ReadByte
我使用方法在 c# 中阅读了它。所以现在在 c# 中我有字节。如何将此字节转换为字符?所以我想将c++中的'J'转换为c#中的'J'。
问问题
447 次
1 回答
1
假设源char
使用 ASCII 或 Latin-1 (ISO 8859-1),在 C# 中你会做char ch = (char)Marshal.ReadByte(...);
.
这是因为 ASCII 和 Latin-1 编码是 Unicode 的子集。.NETchar
是一个 UTF-16 代码单元,只需一个演员表就可以很好地适应其中的每一个。
如果您认为您将处理其他源编码,更好的选择可能是Encoding.GetString()
在字节数组上使用。请记住,某些编码需要多个单元来编码单个代码点(UTF-8、EUC-JP、Shift-JIS 等),因此单个char
可能不够。
于 2013-06-25T18:49:07.197 回答