Bug 47846

Informational

GemStone/S 64 Bit

3.7.4.3, 3.7.4.1, 3.7.4, 3.7.2.2, 3.7.2, 3.7.1, 3.7, 3.6.8, 3.6.7, 3.6.6, 3.6.5, 3.6.4, 3.6.3, 3.6.2, 3.6.1, 3.6, 3.5.8, 3.5.7, 3.5.6, 3.5.5, 3.5.4, 3.5.3, 3.5.2, 3.5.1, 3.5, 3.4.5, 3.4.4, 3.4.3, 3.3.9

Utf8 >> withAll: disallowed with ByteArray arguments

The method Utf8>>withAll: has been added, which restricts the composition of Utf8 instances to avoid malformed Utf8.  However, applications that rely on ByteArray inputs containing Utf8 characters may have used withAll: as part of the process of decoding the input, which errors. This was not the intended usage of Utf8.

Workaround

To convert a ByteArray containing UTF-8 encoded text into a string, in v3.5 and later, you can use the methods:
     ByteArray >> decodeFromUTF8ToString
     ByteArray >> decodeFromUTF8ToUnicode

This replaces patterns such as:
   (Utf8 withAll: <aByteArrayContainingEncodings>) decodeToString


                

Last updated: 5/13/19