Swift

Swift:Webkit 3 (Encoding)

エンコーディングで意味不明の現象に遭遇し、調査しています。

2点、よく理解できない現象が起きていて、調査しています。

問題点1: encodingの配列がObjective-Cと同じに作れない。
原因:NSProprietaryStringEncodingが問題lのようでこれを除けばOK。

➡️ NSProprietaryStringEncoding = 65536でないことが原因か?暫定的な解決方法として、65536を直接配列に入れるとOKになります。

問題点2: URLを読み込むとき、encoding配列を総当たりできない。
原因:調査のため、配列の0番目と1番目を直接参照するようにしているのですが、encodingできないときの処理がうまくできません。

var encodeTable:[UInt] = [NSUTF8StringEncoding,
NSShiftJISStringEncoding,
NSJapaneseEUCStringEncoding,
・・・
NSUTF16StringEncoding,
NSUTF32LittleEndianStringEncoding]

wContent = NSString.stringWithContentsOfURL(nsURL, encoding:encodeTable[0], error:&wError)はOK。UTF8で適切。

wContent = NSString.stringWithContentsOfURL(nsURL, encoding:encodeTable[1], error:&wError)はNG。この行で落ちます。wContentがnilかどうかをObjective-Cではチェックしていますが、この行で落ちるため、後の行にそのチェックを入れても、wErrorのチェックを入れてもダメです。

Categories: Swift, 技術