访问错误:无效的 UTF-8 编码 $FFD8FFE0
Posted
技术标签:
【中文标题】访问错误:无效的 UTF-8 编码 $FFD8FFE0【英文标题】:Access Error: invalid UTF-8 encoding $FFD8FFE0访问错误:无效的 UTF-8 编码 $FFD8FFE0 【发布时间】:2017-09-08 20:21:01 【问题描述】:目前还没有关于红色的书籍,因为它太新了。因此,我正在尝试遵循一本旧的 Rebol 书,并从中挽救一切。
我发现了一些命令,例如read
,由于文件编码,我无法执行代码。
save %/c/users/abagget/desktop/bay.jpg read http://rebol.com/view/bay.jpg
Access Error: invalid UTF-8 encoding: #FFD8FFE0
在 Rebol 中,这个^ 会被读取/二进制和写入/二进制
>> write %/c/alex.txt read http://google.com
*** Access Error: invalid UTF-8 encoding: #A050726F
有没有办法将传入的内容转换为 UTF-8 以便我进行读取? 或者是否有其他类型的读取可以处理非 UTF-8?
【问题讨论】:
哪本书? :D 这个错误是由谷歌页面中的无效 UTF-8 引起的,正如你所发现的那样。Rebol 只是忽略(?)它。我在某个地方打破了这个谷歌错误,但我不记得了.. 通过 Nick Antonaccio 学习 REBOL 【参考方案1】:在 Rebol 中,这个^ 会被读取/二进制和写入/二进制
在 Red 中,save
也用于将 Red 数据类型转换为二进制格式的序列化文本。所以如果你想save
到一个JPEG 文件,你需要提供一个image!
值。 read
获取文本内容(目前仅限于 UTF-8),因此您的使用无效。正确的行应该是:
write/binary %/c/users/abagget/desktop/bay.jpg read/binary http://rebol.com/view/bay.jpg
有没有办法将传入的内容转换为 UTF-8 以便我进行读取?
要从非 UTF-8 文本资源中获取字符串,您需要以二进制形式获取资源,然后编写一个适用于常见 Latin-1 编码的穷人转换器:
bin-to-string: function [bin [binary!]][
text: make string! length? bin
foreach byte bin [append text to char! byte]
text
]
从控制台使用它:
>> bin-to-string read/binary http://google.com
== <!doctype html><html itemscope="" itemtype="http://schema.org...
Red 将来会为常用的文本编码提供适当的转换器。同时,您可以使用这样的功能,或者为您最常用的编码编写适当的解码器(使用转换表)。
【讨论】:
以上是关于访问错误:无效的 UTF-8 编码 $FFD8FFE0的主要内容,如果未能解决你的问题,请参考以下文章
python 2.x 中的“编码是无效关键字”错误是不是不可避免?
eclipse xml 编码问题 “3 字节的 UTF-8 序列的字节 3 无效”