How to convert char to uint8 and vice versa without changing the underlying data
27 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
.
0 commentaires
Réponses (2)
James Tursa
le 4 Fév 2020
Modifié(e) : James Tursa
le 4 Fév 2020
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 commentaires
Walter Roberson
le 4 Fév 2020
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 commentaires
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!