&gt; Afaik newer versions of messagepack added an extra type to have string and binary now seperated.<p>The problem is that the &#x27;str&#x27; type contains arbitrary binary data in an unspecified encoding, and always will, because of backward compatibility. This isn&#x27;t changed by adding a &#x27;bin&#x27; type.<p>Msgpack decoders in Python, for example, have to give you bytestrings unless you pass an option that promises that &#x27;str&#x27;s are all encoded in UTF-8.