2017-03-22 7 views
1

a method like this을 사용하여 NSString (또는 Swift.String)을 저장하면 xattr "com.apple.TextEncoding"이 기록됩니다. corresponding methods 중 하나를 사용하여 다시로드 할 때이 xattr을 확인하여 기본 인코딩으로 사용합니다.com.apple.TextEncoding 용 API가 있습니까?

파일의 내용을로드 할 필요없이이 xattr에 따라 파일 인코딩을 결정하는 API가 있습니까?

"IANA 이름, 세미콜론, CFString Encoding uint32, (선택 사항 인 기타 항목)"을 구문 분석하는 것은 그리 어렵지 않다는 것을 알고 있습니다. 그러나 기본 제공 방법이 있다면 차라리 피할 것입니다.

답변

0

질문을 올바르게 이해하면 "com.apple.TextEncoding"확장 파일 특성 값을 읽을 수있는 방법을 묻습니다. 이는 <sys/xattr.h>에 선언 된 API를 통해 가능합니다. Write extend file attributes swift example

사용 예제 :

에서 xattr을 읽는 방법입니다
func getTextEncodingAttribute(for url: URL) -> String? { 
    do { 
     let data = try url.extendedAttribute(forName: "com.apple.TextEncoding") 
     return String(data: data, encoding: .utf8) 
    } catch _ { 
    } 
    return nil 
} 
+0

가, 그래,하지만 단지 문자열로 값을 제공을

여기에 확장 속성의 기능을 URL을 확장 게시물입니다. 내가 질문에 언급했듯이, icky 부분은 * (너무 복잡한) "IANA 이름; CFStringEncoding, blah blah"형식으로이 값을 파싱합니다. – Ssswift