code: func decodeEscapedUnicode(s []byte) (char [4]byte, size int, err error) {
  	size, err = hex.Decode(char[0:2], s)
  	if err != nil || size != 2 {
  		// The unicode must can be represented in 2 bytes.
  		return char, 0, errors.Trace(err)
  	}
  	var unicode uint16
  	err = binary.Read(bytes.NewReader(char[0:2]), binary.BigEndian, &unicode)
  	if err != nil {
  		return char, 0, errors.Trace(err)
  	}
  	size = utf8.RuneLen(rune(unicode))
  	utf8.EncodeRune(char[0:size], rune(unicode))
  	return
  }
docs: // decodeEscapedUnicode decodes unicode into utf8 bytes specified in RFC 3629.
  // According RFC 3629, the max length of utf8 characters is 4 bytes.
  // And MySQL use 4 bytes to represent the unicode which must be in [0, 65536).