let str = "こんにちは!" let u8Str = str.utf8 let ucStr = str.unicodeScalars // ユニコードスカラとしての2文字目の位置のUTF8表現のバイト値を求めるコード let ucIndex2: String.UnicodeScalarView.Index = ucStr.index(ucStr.startIndex, offsetBy: 2) let strIndex2: String.Index = String.Index(ucIndex2, within: ucStr)! let u8Index2: String.UTF8View.Index = strIndex2.samePosition(in: u8Str)! let u8ByteOffset2: Int = u8Str.distance(from: u8Str.startIndex, to: u8Index2) print(u8ByteOffset2) // 6 print(u8Str[u8Index2]) // 227 <- 答え // 確認 print(str[String.Index(u8Index2, within: u8Str)!]) // に
(edited)