Set applicable error on encode detection

This commit is contained in:
1024jp 2016-01-18 04:32:03 +09:00
parent 1a1e541abc
commit 9373c33671
3 changed files with 13 additions and 1 deletions

View File

@ -19,6 +19,7 @@ develop
- Improve file encoding detection.
- Update default priority order of encoding detection.
- Improve encoding compatibility check.
- Better error message on file opening.
### Fixes

View File

@ -129,6 +129,10 @@ const char kUTF32LEBom[4] = {0xFF, 0xFE, 0x00, 0x00};
}
}
if (outError) {
*outError = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileReadUnknownStringEncodingError userInfo:nil];
}
*usedEncoding = NSNotFound;
return nil;
}

View File

@ -102,7 +102,14 @@ class EncodingDetectionTests: XCTestCase {
let data = NSData()
var encoding: NSStringEncoding = 0
let string = try? NSString(data: data, suggestedCFEncodings: [], usedEncoding: &encoding)
var string: NSString?
do {
string = try NSString(data: data, suggestedCFEncodings: [], usedEncoding: &encoding)
} catch let error as NSError {
XCTAssertEqual(error.domain, NSCocoaErrorDomain)
XCTAssertEqual(error.code, NSFileReadUnknownStringEncodingError)
XCTAssertNotNil(error.localizedDescription)
}
XCTAssertNil(string)
XCTAssertEqual(Int(encoding), NSNotFound)