From: Hal Fulton Date: 2012-10-28T03:40:57+09:00 Subject: #encode and (pre/de)composed characters --f46d04182518c2bb7b04cd0ec6bb Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Why does encode to UTF-8 (in at least this one case) appear to favor a decomposed character while encode to UTF-16LE favors a precomposed character? See below... Thanks, Hal 1.9.2p290 :009 > str =3D [233].pack("c*").force_encoding("ISO-8859-1") =3D> "\xE9" 1.9.2p290 :010 > s2 =3D str.encode("UTF-8") =3D> "=E9" 1.9.2p290 :012 > s2.bytes.to_a =3D> [195, 169] 1.9.2p290 :018 > s3 =3D str.encode("UTF-16LE") =3D> "\u00E9" 1.9.2p290 :019 > s3.bytes.to_a =3D> [233, 0] --f46d04182518c2bb7b04cd0ec6bb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Why does encode to UTF-8 (in at least this one case) appear to favor a
d= ecomposed character while encode to UTF-16LE favors a precomposed
charac= ter?

See below...

Thanks,
Hal


1.9.2p290 :009 &g= t; str =3D [233].pack("c*").force_encoding("ISO-8859-1"= )
=A0=3D> "\xE9"
1.9.2p290 :010 > s2 =3D str.encode("= ;UTF-8")
=A0=3D> "=E9"
1.9.2p290 :012 > s2.byte= s.to_a
=A0=3D> [195, 169]
1.9.2p290 :018 > s3 =3D str.encode(&= quot;UTF-16LE")
=A0=3D> "\u00E9"
1.9.2p290 :019 > s3.bytes.to_a
=A0= =3D> [233, 0]

--f46d04182518c2bb7b04cd0ec6bb--