使用 NSString(data:encoding:) 初始化器,指定編碼為 .utf8(對應 NSUTF8StringEncoding)。
let yourData: Data = ... // 你的 NSData / Data 物件
if let string = String(data: yourData, encoding: .utf8) {
print("轉換成功: \(string)")
} else {
print("資料非有效 UTF-8 編碼")
}
| Swift Encoding | Foundation 常數 | 適用場景 |
|---|---|---|
.utf8 | NSUTF8StringEncoding | 現代應用首選,支援全 Unicode |
.utf16 | NSUTF16StringEncoding | 需處理 UTF-16 資料時 |
.ascii | NSASCIIStringEncoding | 純 ASCII 文字 |
.isoLatin1 | NSISOLatin1StringEncoding | 西歐語系舊系統 |
.windowsCP1252 | NSWindowsCP1252StringEncoding | Windows 系統匯出資料 |
String(decoding:as:)(Swift 5+)自動替換非法序列為 :let str = String(decoding: yourData, as: UTF8.self)NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];Data 直接處理,避免頻繁建立中間字串物件。Content-Type 標頭中的 charset。NSString.init(data:encoding:) 回傳可選型別,務必安全解包,否則會崩潰。.isoLatin1 或 .windowsCP1252 作為後備方案。