gpt4 book ai didi

character-encoding - 使用 Rebol 3 执行文件编码转换

转载 作者:行者123 更新时间:2023-12-04 22:20:53 25 4
gpt4 key购买 nike

我想使用 Rebol 3 读取 Latin1 中的文件并将其转换为 UTF-8。是否有我可以使用的内置函数或一些外部库?我在哪里可以找到它?

最佳答案

Rebol 有一个 invalid-utf? 函数,用于搜索不是有效 UTF-8 序列一部分的字节的二进制值。我们可以循环直到找到并替换所有这些,然后将我们的二进制值转换为字符串:

latin1-to-utf8: function [binary [binary!]][
mark: :binary
while [mark: invalid-utf? mark][
change/part mark to char! mark/1 1
]
to string! binary
]

此函数修改原始二进制文件。我们可以创建一个新的字符串来代替二进制值:
latin1-to-utf8: function [binary [binary!]][
mark: :binary
to string! rejoin collect [
while [mark: invalid-utf? binary][
keep copy/part binary mark ; keeps the portion up to the bad byte
keep to char! mark/1 ; converts the bad byte to good bytes
binary: next mark ; set the series beyond the bad byte
]
keep binary ; keep whatever is remaining
]
]

奖励:这是上面的一个 Rebmu 版本—— rebmu/args snippet #{DECAFBAD},其中 snippet 是:
; modifying
IUgetLOAD"invalid-utf?"MaWT[MiuM][MisMtcTKm]tsA

; copying
IUgetLOAD"invalid-utf?"MaTSrjCT[wt[MiuA][kp copy/partAmKPtcFm AnxM]kpA]

关于character-encoding - 使用 Rebol 3 执行文件编码转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com