encoding が .utf8 で失敗することってあるんでしょうか?おそらく、表現できない文字が含まれていたときに nil になるんでしょうが、 Swift の String の文字列の内部表現が UTF-16 なので、 encoding が .utf8 なら Unicode のコードポイントの表現の変換だけだから失敗することがないように思います。 https://developer.apple.com/documentation/swift/stringprotocol/2923420-dataString は内部表現が UTF-16 だけど、 StringProtocol はその限りではないか。String の data(...) を呼ぶとして、 .utf8 で失敗し得るか。今、 ! を付けたい。 (edited)