public function charAt($index)
    {
        $index = (int) $index;

        if ($index < 0 || $index >= $this->length()) {
            throw new \OutOfBoundsException();
        }

        return mb_substr($this->string, $index, 1, $this->encoding);
    }