У меня есть код Unicode, который может быть что угодно: возможно, ASCII, возможно, что-то в BMP и, возможно, экзотический смайлик, например U+1F612.
Я ожидал, что будет простой способ взять кодовую точку и закодировать ее в массив байтов, но не могу найти простого способа. Я могу превратить его в строку, а затем закодировать, но это обходной путь, включающий сначала кодирование в UTF-16, а затем перекодирование в требуемую кодировку. Я хотел бы закодировать его непосредственно в байты.
public static byte[] encodeCodePoint(int codePoint, Charset charset) {
// Surely there's got to be a better way than this:
return new StringBuilder().appendCodePoint(codePoint).toString().getBytes(charset);
}
Подробнее здесь: https://stackoverflow.com/questions/662 ... -codepoint