Go UTF-16

This is just a small code fragment that prints out the Unicode characters from the Fullwidth Latin Letters (range 0xFF01-0xFFEF). This works on little & big endian machines (tested with qemu-arm & qemu-mips compiled using gccgo 4.7.) I thought it might have issues with the way it decodes the int32 into a byte array and re-encodes it to a uint16 array.
package main

import (
"bytes"
"encoding/binary"
"fmt"
"unicode/utf16"
)

func main() {
for i := int32(0xFF00); i <= 0xFFEF; i++ { c := new(bytes.Buffer) if err := binary.Write(c, binary.BigEndian, i); err != nil { fmt.Println("binary.Write failed:", err) return } ui16 := make([]uint16, 2) binary.Read(c, binary.BigEndian, ui16) r := utf16.Decode(ui16) fmt.Printf("0x%4x: %c\n", i, r[1]) } }