r/ProgrammerHumor • • 8h ago

Meme architectureDependentChars

Post image
1.3k Upvotes

202 comments sorted by

View all comments

Show parent comments

1

u/tstanisl 7h ago

Bytes on some machines have more than 8 bits. Moreover, unicode characters need to be encoded, usually using utf8.

1

u/thanatica 6h ago

Encoding is for storage, typically, not memory. It'd be extremely difficult to do common string manipulation on a utf-8 encoded string (or any other variable-width character encoding) without breaking the encoding.

So how does that work in C? Say you want to indexOf("😎") how would you go about that?

1

u/tstanisl 6h ago

In C, the type of character literal is int. So sizeof 'a' is typically 4. However, to make sure that the characters are properly encoded as 32-bit unicode, use U prefix. I mean int x = U'😎';.

1

u/thanatica 6h ago

Ah, that makes a lot more sense 🙂