Go .
fmt.Println([]byte("☮️"))
NSJSONSerialization can not . ,
NSJSONSerialization Emoji. - NSData * utf32Data = [uniText dataUsingEncoding:NSUTF32LittleEndianStringEncoding];.
- "☮️" simbol " iOS", go?
UPD
, , - . UTF16?
// it look the same, but completely different "characters"
//first one is yours, and second one is U+262E
const nihongo = "☮️☮"
for index, runeValue := range nihongo {
fmt.Printf("%#U starts at byte position %d\n", runeValue, index)
}
bad := []byte("☮️")
good := []byte("☮")
fmt.Printf("%v %s \n", bad, bad)
fmt.Printf("%v %s \n", good, good)
:
U+262E '☮' starts at byte position 0
U+FE0F '️' starts at byte position 3
U+262E '☮' starts at byte position 6
[226 152 174 239 184 143] ☮️
[226 152 174] ☮
UDP2
! ctrl + c/ctrl + v . ! 2 .
unprintable := []byte{239, 184, 143}
fmt.Printf("valid? %v", utf8.Valid(unprintable))
fmt.Println("full rune?", utf8.FullRune(unprintable))
r, size := utf8.DecodeRune(unprintable)
fmt.Println(r, size, string(r))
fmt.Printf("valid rune? #v", utf8.ValidRune(r))
:
valid? true
full rune? true
65039 3 ️
valid rune? true
, db , "" , NSJSONSerialization . iOS =)