package com.thaiopensource.util; /** * Utility functions for working with UTF-8. */ public class Utf8 { private Utf8() { } static public byte[] encode(int c) { if (c < 0x80) return new byte[] { (byte)c }; byte[] buf; if (c < 0x800) { buf = new byte[2]; buf[0] = (byte)((c >> 6) | (0x80 | 0x40)); } else if (c < 0x10000) { buf = new byte[3]; buf[0] = (byte)((c >> (2 * 6)) | (0x80 | 0x40 | 0x20)); } else { buf = new byte[4]; buf[0] = (byte)((c >> (3 * 6)) | (0x80 | 0x40 | 0x20 | 0x10)); } for (int i = buf.length - 1; i > 0; i--) { buf[i] = (byte)((c & 0x3F) | 0x80); c >>= 6; } return buf; } }