Description: |
(text/x-fossil-wiki)
In the following script, the sequence \xc0\x40 is invalid for utf-8, and
<code>read</code> produces an error. When the profile is changed to "replace",
<code>read</code> should then produce <code>AB...</code>, but instead it loses
<code>AB</code> and produces characters starting at the invalid sequence.
<blockquote><code><verbatim>
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
</verbatim></code></blockquote>
|