>  ABCäöü߀𝄞
>  <point>data 
>  65 66 67 228 246 252 223 8364 119070 
>  number of bytes 12

Ihr Programm berechnet die Zahl der Bytes nicht korrekt.

Der String s = "ABCäöü߀𝄞" hat nicht 12 Byte, sondern 18 Byte:

ipython
Python 3.11.9 | packaged by conda-forge | (main, Apr 19 2024, 18:36:13) [GCC 
12.3.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.26.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: s = "ABCäöü߀𝄞"

In [2]: [ ord(x) for x in s ]
Out[2]: [65, 66, 67, 228, 246, 252, 223, 8364, 119070]

In [3]: [ list(bytes(x, 'utf8')) for x in s ]
Out[3]: 
[[65],
 [66],
 [67],
 [195, 164],
 [195, 182],
 [195, 188],
 [195, 159],
 [226, 130, 172],
 [240, 157, 132, 158]]

In [4]: [ len(bytes(x, 'utf8')) for x in s ]
Out[4]: [1, 1, 1, 2, 2, 2, 2, 3, 4]

In [5]: sum([ len(bytes(x, 'utf8')) for x in s ])
Out[5]: 18

W. Büchel
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: arch...@mail-archive.com

Reply via email to