定义“我无法将文件读取为 ansi 编码”——fconfigure
在代码片段中调用时是否出现任何错误?要不然是啥?
你有可用的必要编码吗?应该是的,但是通过encoding names
在你的解释器中运行来验证。
可能发生的另一个问题(我不确定)是,当您执行时,fconfigure $fd -encoding CP1250
Tcl 会将读取的数据解释$fd
为在“CP1250”Windows 代码页中编码并将其转换为Tcl 的内部编码,这不能保证是UTF-8。因此,如果tdom
真的需要 UTF-8 编码的字节流,则必须明确将从文件中读取的内容转换为 UTF-8。你可以这样做:
set fd [open $filename]
fconfigure $fd -encoding cp1250
set data [encoding convertto utf-8 [read $fd]]
tdom whatever $data
您可以尝试的另一种方法是将文件作为二进制文件读取(不对其内容进行任何解释,然后以您希望的任何方式对其进行重新编码):
set fd [open $filename]
fconfigure $fd -translation binary
set data [encoding convertto utf-8 [encoding convertfrom cp1250 [read $fd]]]
tdom whatever $data
P.S.
Next time please explain what the real problem is. For some bizzare reason people tend to think that the actual error message is not relevant while it's the most crucial bit of information in fact.