### 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)

real_t char_adv = advance / (real_t)(glyphs[i].end - glyphs[i].start);
						if ((glyphs[i].flags & GRAPHEME_IS_RTL) == GRAPHEME_IS_RTL) {
							_push_range(ranges, off + char_adv * (glyphs[i].end - end), off + char_adv * (glyphs[i].end - start));
						} else {
							_push_range(ranges, off + char_adv * (start - glyphs[i].start), off + char_adv * (end - glyphs[i].start));
						}
					}
				}
			}
			off += glyphs[i].advance;
		}
	}
	return ranges;
}
int64_t TextServer::shaped_text_hit_test_grapheme(const RID &p_shaped, double p_coords) const {
	
	double off = 0.0f;
	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++) {
		for (int j = 0; j < glyphs[i].repeat; j++) {
			if (p_coords >= off && p_coords < off + glyphs[i].advance) {
				return i;
			}
			off += glyphs[i].advance;
		}
	}
	return -1;
}
int64_t TextServer::shaped_text_hit_test_position(const RID &p_shaped, double p_coords) const {