I am trying to use struct.pack to write a padded string in a file but it does not have to be 3.x Interpreters does not work anymore. An example of how I am using it:
  mystring = anotherstring + "some time ago" output = straight pocket ("30s", meststring);    This is fine in previous versions of Python, but with 3 it generates an error to demand a byte object. Docs means that it appears to convert any string into a UTF-8 byte object without complaining (and I do not care if multi-byte characters have to be shortened):  
:  "C, S and P conversion codes work on objects bytes, but packing with such codes also supports the str object, which are encoded using UTF-8."    How do I read other documents that are using struct.pack along with strings correctly reading documents?   
 
  Yes, up to 3.1  Struct.pack ()  incorrectly utf -Instead of strings on 8 bytes; It was fixed in Python 3.2. See.   The conclusion was that the underlying conversion was a bad idea, and it was returned, while developers still got the chance to do this:  
  I like to break I'm looking forward to maintaining a broken API for 10 or 20 years today :-) And we have a very small user base that is using Python 3, it is now easier to change it than the next release .   
 Also in the document:  
   struct.pack ()  now only  s  string Allows bytes for pack codes. In the past, this text will accept logic and using UTF-8 will give the byte an indication form. It was problematic because it was creating perceptions about correct encoding and because a variable-length encoding could fail when writing a fixed length segment of the structure.    You must clearly encode your stars before packing.   
 
No comments:
Post a Comment