/** * @param string $value * @param string $encoding * @return Codepoint * @throws InvalidArgumentException */ private function valueToCodepoint($value, $encoding) { if ($encoding === self::ENCODING_DECIMAL) { return Codepoint::fromInt((int) $value); } elseif ($encoding === self::ENCODING_HEXADECIMAL) { return Codepoint::fromHex($value); } elseif ($encoding === self::ENCODING_UTF8) { return Codepoint::fromUTF8($value); } throw new InvalidArgumentException(sprintf('Unknown encoding: %s', $encoding)); }