(bs []byte)
| 65 | } |
| 66 | |
| 67 | func decodeUTF16LEString(bs []byte) string { |
| 68 | u16s := make([]uint16, len(bs)/2) |
| 69 | for i := 0; i < len(u16s); i++ { |
| 70 | u16s[i] = uint16(bs[2*i]) + uint16(bs[2*i+1])<<8 |
| 71 | } |
| 72 | |
| 73 | runes := utf16.Decode(u16s) |
| 74 | |
| 75 | var runeBuf [4]byte |
| 76 | var buf bytes.Buffer |
| 77 | for i := 0; i < len(runes); i++ { |
| 78 | n := utf8.EncodeRune(runeBuf[:], runes[i]) |
| 79 | buf.Write(runeBuf[:n]) |
| 80 | } |
| 81 | |
| 82 | return buf.String() |
| 83 | } |
| 84 | |
| 85 | func encodeUTF16LEString(s string) []byte { |
| 86 | var runes []rune |