2017-04-12 9 views
1

今は本当に新しいので、赤で本はありません。だから私は古いRebolの本を読んで、私がそれからできることを取り戻そうとしています。

私は、ファイルエンコードのためにコードを実行できないようないくつかのコマンドを見つけました。read REBOLので

save %/c/users/abagget/desktop/bay.jpg read http://rebol.com/view/bay.jpg 
Access Error: invalid UTF-8 encoding: #{FFD8FFE0} 

この^バイナリ/読み込みおよび/バイナリ

>> write %/c/alex.txt read http://google.com 
*** Access Error: invalid UTF-8 encoding: #{A050726F} 

を書きされていたので、私は、読み取りを行うことができますUTF-8に入ってくるコンテンツを変換する方法はありますか? また、非UTF-8を扱う他のタイプの読み取りがありますか?赤色

+0

どの書籍ですか? :D このエラーは、あなたが見つけたように、Googleのページで無効なUTF-8が原因で発生します。Rebolは単にそれを無視します(?)。私はどこかでこのGoogleエラーを壊しましたが、私は覚えていません.. –

+0

Learn REBOL Nick Antonaccio –

答えて

3

In Rebol this^ would have been read/binary and write/binary

saveはバイナリ形式のシリアル化されたテキストに赤データ型を変換するためのものです。したがって、saveをJPEGファイルに変換する場合は、image!の値を指定する必要があります。 readはテキストコンテンツ(現在はUTF-8に制限されています)を取得するため、使用法が無効です。適切な行は次のようになります。

write/binary %/c/users/abagget/desktop/bay.jpg read/binary http://rebol.com/view/bay.jpg 

Is there a way to convert incoming content to UTF-8 so I can do the read?

非UTF-8テキストリソースから文字列を取得するには、バイナリとしてリソースを取得した後、正常に動作する必要があります貧しい者の男コンバータを記述する必要がありますコンソールから、それを使用して

bin-to-string: function [bin [binary!]][ 
    text: make string! length? bin 
    foreach byte bin [append text to char! byte] 
    text 
] 

:共通Latin-1エンコーディングのため

>> bin-to-string read/binary http://google.com 
== {<!doctype html><html itemscope="" itemtype="http://schema.org... 

レッドは、pを提供します将来一般的に使用されるテキストエンコーディング用のローパーコンバータその間、このような関数を使用するか、最も頻繁に使用するエンコーディングに適切なデコーダ(変換テーブルを使用)を書き込むことができます。

関連する問題