How to convert char to uint8 and vice versa without changing the underlying data
197 次查看(过去 30 天)
显示 更早的评论
回答(2 个)
James Tursa
2020-2-4
编辑:James Tursa
2020-2-4
Simply:
c = original char array
u = uint8(c);
Or
u = original uint8 array
c = char(u);
If you mean you want to reinterpret one as the other without a data copy, you can't because MATLAB stores char data as 2-bytes per char and uint8 is of course 1 byte per element.
If you want to reinterpret the char as uint16 or vice-versa without a data copy, it can be done but not officially. You have to resort to mex hacks. E.g.,
0 个评论
Walter Roberson
2020-2-4
I speculate that what you need is https://www.mathworks.com/help/matlab/ref/unicode2native.html unicode2native() to convert characters to bytes, and native2unicode() to convert bytes to unicode. The functions offer a variety of ways of encoding character positions greater than 255, including UTF8 and UTF16LE and UTF16BE .
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!