Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^17: Seeking Perl docs about how UTF8 flag propagates (Terminology)

by LanX (Saint)
on May 22, 2023 at 11:29 UTC ( [id://11152360]=note: print w/replies, xml ) Need Help??


in reply to Re^16: Seeking Perl docs about how UTF8 flag propagates (Terminology)
in thread Seeking Perl docs about how UTF8 flag propagates

> Each character takes up 1 to 13 bytes of storage, actually.

I'm puzzled, could you please give an example of a string where a character takes more than 4 bytes of storage?

edit

> I think you're trying to convince me that "character" is confusing,

no, I'm not,

as I said I think byte := character is confusing, it's rather character := byte in the classic case.

(Upgrade: deleted part about using vec and unpack with wide characters, until further testing)

Cheers Rolf
(addicted to the 𐍀𐌴𐍂𐌻 Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^18: Seeking Perl docs about how UTF8 flag propagates (Terminology)
by ikegami (Patriarch) on May 22, 2023 at 16:39 UTC

    Anything larger than 0x1F_FFFF will take more than four bytes.

    Anything larger than 0xF_FFFF_FFFF will take 13.

    $ perl -MDevel::Peek -e'Dump(chr(0x7FFFFFFFFFFFFFFF))' SV = PV(0x5555770a3f00) at 0x5555770d2d50 REFCNT = 1 FLAGS = (PADTMP,POK,READONLY,PROTECT,pPOK,UTF8) PV = 0x5555770db6f0 "\xFF\x80\x87\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xB +F\xBF"\0 [UTF8 "\x{7fffffffffffffff}"] CUR = 13 LEN = 15

    as I said I think byte := character is confusing, it's rather character := byte in the classic case.

    Still no idea what you mean. Are you talking about something I said? In which case, you could point out which thing I said you find confusing?

    oh, and the classic case is char ≡ byte ≡ smallest addressable unit. It has been all kinds of sizes, including 6, 8, 9, 16 and even 32 bits. (I personally worked on a system with a 16 bit byte extensively.) But we now have strings with elements that have a size larger than the smallest addressable unit. So the classic case is irrelevant.

        You said "And I cringe about calling a byte a character.". What does that even mean? Did someone say a byte is a character? Are you talking about something I said? In which case, what?

        Your explanations, including the one to which you just linked, do not provide clarity.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11152360]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2024-03-28 12:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found