|
In the following script, the sequence \xc0\x40 is invalid for utf-8, and
read produces an error. When the profile is changed to "replace",
read should then produce AB..., but instead it loses
AB and produces characters starting at the invalid sequence.
set chan [file tempfile]
chan configure $chan -translation binary
# This is not valid UTF-8
puts $chan helloAB\xc0\x40CD\nEFG
flush $chan
seek $chan 0
chan configure $chan -encoding utf-8 -profile strict
set data [read $chan 5]; #-> hello
puts $data
catch {read $chan 5} res ;#-> error message
puts $res
chan configure $chan -profile replace
set data [read $chan 5] ;#-> does not start with "AB"
puts $data
|