### Godot version

4.0.2.stable, master(d6dde81)

### System information

Arch Linux

### Issue description

When using Arbitrary or Word (Smart) auto wrap mode and the label's width is smaller than one character, CJK characters are repeated unexpectedly when autowrapped.

In the following screenshot, the three labels are all narrower than a character:

* にほんご
* 简体中文
* 한국어

| Expected | Actual |
| --- | --- |
| ![ksnip_20230418-152604](https://user-images.githubusercontent.com/372476/232703096-5b9819ec-0a48-4f54-9ba9-754f7a8b6229.png) | ![ksnip_20230418-152547](https://user-images.githubusercontent.com/372476/232703148-57c07818-aa99-4638-aa6b-5a55d3b0cd1c.png) |

All characters expect the last one is repeated.

### Steps to reproduce

Use the MRP.

### Minimal reproduction project

[test-4.zip](https://github.com/godotengine/godot/files/11259001/test-4.zip)

int v_size = shaped_text_get_glyph_count(p_shaped);
	const Glyph *glyphs = shaped_text_get_glyphs(p_shaped);
	for (int i = 0; i < v_size; i++) {
		if (p_pos >= glyphs[i].start && p_pos < glyphs[i].end) {
			return glyphs[i].end;
		}
	}
	return p_pos;
}
int64_t TextServer::shaped_text_prev_grapheme_pos(const RID &p_shaped, int64_t p_pos) const {
	int v_size = shaped_text_get_glyph_count(p_shaped);
	const Glyph *glyphs = shaped_text_get_glyphs(p_shaped);
	for (int i = 0; i < v_size; i++) {
		if (p_pos > glyphs[i].start && p_pos <= glyphs[i].end) {
			return glyphs[i].start;
		}
	}
	return p_pos;
}
void TextServer::shaped_text_draw(const RID &p_shaped, const RID &p_canvas, const Vector2 &p_pos, double p_clip_l, double p_clip_r, const Color &p_color) const {