Re: Comparing inputs with source strings
[email protected] (Daniel Dehennin) Wed, 11 May 2016 10:04:01 +0200
| Newsgroups | perl.unicode |
|---|---|
| Message-ID | <[email protected]> |
--=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Karl Williamson <[email protected]> writes: > On 05/09/2016 08:53 AM, Daniel Dehennin wrote: >> Hello, >> >> I tried to make my Perl5 code unicode compliant after reading a post on >> stackoverflow[1]. >> >> As suggested in the post: >> >> =E2=80=9Calways run incoming stuff through NFD and outbound stuff f= rom NFC.=E2=80=9D >> >> I got a hard time finding why my Test::More was failing but displaying >> exactly the same strings for =E2=80=9Cgot=E2=80=9D and =E2=80=9Cexpected= =E2=80=9D. >> >> I finally check how UTF-8 sources are handled and found that they are in >> NFC form, I run the following script: [...] > I'm afraid that when it comes to normalization in Perl5, you have to > do it yourself. I hear that Perl6 is much friendlier in this regard, > but I have no personal experience with it. Your $unistring is in > whatever normalization you made it when you typed it into your editor, > or whatever your editor did with it as you were typing. You could > have typed it in NFD, but probably the most natural way to enter > things on your keyboard will underlying it all be NFC. That's what I finally find out in another post, normally all my inputs are NFD but my tests used static string to match, I declared them with NFD to make it explicit. I added a note in my POD to signal that the sub returns NFD strings. > Normalization is tricky, and the Unicode Consortium has had to modify > things years after they were first specified, because no one could > reasonably implement what was expected. I may tackle getting > normalization to be more developer friendly in future Perl5 versions, > but not in the next couple of years. Thanks, as soon as my little work project is working well I'll try to redo it in Perl6. Regards. =2D-=20 Daniel Dehennin R=C3=A9cup=C3=A9rer ma clef GPG: gpg --recv-keys 0xCC1E9E5B7A6FE2DF Fingerprint: 3E69 014E 5C23 50E8 9ED6 2AAD CC1E 9E5B 7A6F E2DF --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iL4EAREKAGYFAlcy53JfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3Bl bnBncC5maWZ0aGhvcnNlbWFuLm5ldDA5QUE4OTZBMEVDNkZEMDk5Mjc2ODdFODE2 QjJEMTMxQ0NBMDFBNEIACgkQFrLRMcygGkspHwD+JuQ75NjomJ11UPJwWJvoobNA K5ZxhBUfls4Cpcbun9IA/0LkkyCNGg+jIS4tXTlCz1aEKdyXBSVLriU9+ZJESi8t =R5u0 -----END PGP SIGNATURE----- --=-=-=--