| 1234567891011121314151617181920212223 |
- package ieproxy
- import (
- "unicode/utf16"
- "unsafe"
- )
- // StringFromUTF16Ptr converts a *uint16 C string to a Go String
- func StringFromUTF16Ptr(s *uint16) string {
- if s == nil {
- return ""
- }
- p := (*[1<<30 - 1]uint16)(unsafe.Pointer(s))
- // find the string length
- sz := 0
- for p[sz] != 0 {
- sz++
- }
- return string(utf16.Decode(p[:sz:sz]))
- }
|