Tach!
pack("C", 61);
Erzeugt dieses Byte für den Transport. Das hat mit Zeichenkodierung überhaupt nichts zu tun sondern einzig und allein mit der Typisierung welche die Schablone C implementiert.
Das ist keine Typisierung, sondern eine Formatierung. Die Daten werden lediglich für ein bestimmtes Format gebracht, also auf eine konkrete Weise kodiert.
Ich sprach im ersten Teil der Antwort von Kodierung allgemein. Um Zeichenkodierung im speziellen ging es im Beispiel des zweiten Teils. Ich kann auch gern noch ein Beispiel abseits von Zeichen bringen.
L unsigned long (always 32 bit, machine byte order)
N unsigned long (always 32 bit, big endian byte order)
V unsigned long (always 32 bit, little endian byte order)
Du wirst mir hoffentlich nicht einzureden versuchen, dass das drei Typen sind. Das sind lediglich drei Formatierungen/Kodierungen für denselben Typ.
dedlfix.