HTTP/1.1 -1 Read error in cache disk data: SuccessContent-Type: text/tab-separated-values; charset="utf-8" Last-Modified: Sat, 22 Jan 2022 07:45:54 GMT Content-length: 1823 Connection: Close Proxy-Connection: Close X-Cache: HIT from web1.osuosl.org Server: ProxyTrack 0.5 (HTTrack 3.49.2) id summary reporter owner description type status priority milestone component version severity resolution keywords cc lang patch platform 1793 FileHandles do not properly transcode strings pmichaud "The following program creates three strings with exactly the same (logical) 2-character contents and verifies that the strings are equal. However, when output to a filehandle set to use utf8 encoding, the strings produce different results -- the non-utf8 string isn't properly transcoded to the utf8 encoding used by the filehandle. {{{ pmichaud@orange:~/parrot/trunk$ ./parrot_config revision 48985 pmichaud@orange:~/parrot/trunk$ cat a.pir .sub main :main # set output encoding to utf8 $P0 = getstdin $P0.'encoding'('utf8') # Build three strings of two characters each .local string a, b, c a = unicode:""\x{c3}\x{a9}"" # U+00C3 followed by U+00A9 $S0 = chr 0xc3 $S1 = chr 0xa9 b = concat $S0, $S1 # U+00C3 followed by U+00A9 c = concat unicode:"""", b # U+00C3 followed by U+00A9 # Show that they're all equal print ""a eq b == "" $I0 = iseq a, b say $I0 print ""a eq c == "" $I0 = iseq a, c say $I0 print ""b eq c == "" $I0 = iseq b, c say $I0 # Display them say a say b say c .end pmichaud@orange:~/parrot/trunk$ ./parrot a.pir a eq b == 1 a eq c == 1 b eq c == 1 é é é pmichaud@orange:~/parrot/trunk$ }}} In the above sample run, I expect the last three lines to produce the same output since the strings themselves are equivalent. (One can do a hex dump of the output to verify that the middle string is different from the other two.) Thanks! Pm" bug closed normal core 2.7.0 medium invalid perl6 iz-menu">