@@ -21,23 +21,32 @@ HTMLStringEncoding DeterminedStringEncodingForData(NSData *data, NSString *conte
21
21
unsigned char buffer[3 ] = {0 };
22
22
[data getBytes: buffer length: MIN (data.length, 3U )];
23
23
if (buffer[0 ] == 0xFE && buffer[1 ] == 0xFF ) {
24
- *outDecodedString = [[NSString alloc ] initWithData: data encoding: NSUTF16BigEndianStringEncoding];
25
- return (HTMLStringEncoding){
26
- .encoding = NSUTF16BigEndianStringEncoding,
27
- .confidence = Certain
28
- };
24
+ NSString *decodedString = [[NSString alloc ] initWithData: data encoding: NSUTF16BigEndianStringEncoding];
25
+ if (decodedString) {
26
+ *outDecodedString = decodedString;
27
+ return (HTMLStringEncoding){
28
+ .encoding = NSUTF16BigEndianStringEncoding,
29
+ .confidence = Certain
30
+ };
31
+ }
29
32
} else if (buffer[0 ] == 0xFF && buffer[1 ] == 0xFE ) {
30
- *outDecodedString = [[NSString alloc ] initWithData: data encoding: NSUTF16LittleEndianStringEncoding];
31
- return (HTMLStringEncoding){
32
- .encoding = NSUTF16LittleEndianStringEncoding,
33
- .confidence = Certain
34
- };
33
+ NSString *decodedString = [[NSString alloc ] initWithData: data encoding: NSUTF16LittleEndianStringEncoding];
34
+ if (decodedString) {
35
+ *outDecodedString = decodedString;
36
+ return (HTMLStringEncoding){
37
+ .encoding = NSUTF16LittleEndianStringEncoding,
38
+ .confidence = Certain
39
+ };
40
+ }
35
41
} else if (buffer[0 ] == 0xEF && buffer[1 ] == 0xBB && buffer[2 ] == 0xBF ) {
36
- *outDecodedString = [[NSString alloc ] initWithData: data encoding: NSUTF8StringEncoding];
37
- return (HTMLStringEncoding){
38
- .encoding = NSUTF8StringEncoding,
39
- .confidence = Certain
40
- };
42
+ NSString *decodedString = [[NSString alloc ] initWithData: data encoding: NSUTF8StringEncoding];
43
+ if (decodedString) {
44
+ *outDecodedString = decodedString;
45
+ return (HTMLStringEncoding){
46
+ .encoding = NSUTF8StringEncoding,
47
+ .confidence = Certain
48
+ };
49
+ }
41
50
}
42
51
43
52
if (contentType) {
0 commit comments