Bonsoir François,

From the class comment of ZnBase64Encoder:

[...]
Note that to encode a String as Base64, you first have to encode the characters 
as bytes using a character encoder.
[...]

Sending #asByteArray to a String is the same as doing no encoding (or doing 
null encoding).

Consider:

ZnBase64Encoder new encode: (ZnUTF8Encoder new encodeString: 
'tamèreenslipdeguerre'). 

=> 'dGFtw6hyZWVuc2xpcGRlZ3VlcnJl'

ZnBase64Encoder new encode: (ZnByteEncoder iso88591 encodeString: 
'tamèreenslipdeguerre'). 

=> 'dGFt6HJlZW5zbGlwZGVndWVycmU='

ZnBase64Encoder new encode: (ZnNullEncoder new encodeString: 
'tamèreenslipdeguerre'). 

=> 'dGFt6HJlZW5zbGlwZGVndWVycmU='

The last two are often the same, and thus equivalent to #asByteArray, but not 
always.

HTH,

Sven

On 11 Jun 2014, at 21:56, François Stephany <tulipe.mouta...@gmail.com> wrote:

> I might hit some problem with Base64 encoding in there. 
> It seems that Pharo does not use UTF8 for its Base64 encoding.
> 
> I'm probably missing something related to Base64 encoding...
> 
> In Pharo 3.0:
> 
> ZnBase64Encoder new encode: 'tamèreenslipdeguerre' asByteArray. 
> -> 'dGFt6HJlZW5zbGlwZGVndWVycmU='
> 
> 'tamèreenslipdeguerre' base64Encoded. 
> -> 'dGFt6HJlZW5zbGlwZGVndWVycmU='
> 
> In Ruby 2.0: 
> 
> Base64.strict_encode64("tamèreenslipdeguerre")
> -> dGFtw6hyZWVuc2xpcGRlZ3VlcnJl
> 
> http://www.motobit.com/util/base64-decoder-encoder.asp
> (iso-8859-1)
> tamèreenslipdeguerre -> dGFt6HJlZW5zbGlwZGVndWVycmU=
> 
> http://www.motobit.com/util/base64-decoder-encoder.asp
> (utf8)
> -tamèreenslipdeguerre > dGFtw6hyZWVuc2xpcGRlZ3VlcnJl


Reply via email to