Can the conversion of a String to Data with UTF-8 encoding ever fail?

前端 未结 1 1101
无人及你
无人及你 2020-12-11 03:06

In order to convert a String instance to a Data instance in Swift you can use data(using:allowLossyConversion:), which returns an opti

相关标签:
1条回答
  • 2020-12-11 03:27

    UTF-8 can represent all valid Unicode code points, therefore a conversion of a Swift string to UTF-8 data cannot fail.

    The forced unwrap in

    let string = "some string .."
    let data = string.data(using: .utf8)!
    

    is safe.

    The same would be true for .utf16 or .utf32, but not for encodings which represent only a restricted character set, such as .ascii or .isoLatin1.

    You can alternatively use the .utf8 view of a string to create UTF-8 data, avoiding the forced unwrap:

    let string = "some string .."
    let data = Data(string.utf8)
    
    0 讨论(0)
提交回复
热议问题