Разве диакритический знак над "а" не должен быть удален регулярным выражением?
"hǎo".gsub(/\p{Nonspacing_Mark}/, '')
=> "hǎo"
"hǎo".gsub(/\p{Mn}/, '')
=> "hǎo"
Обновление:
Я вроде как понял, как это работает в Java.
Normalizer.normalize("hǎo", Form.NFD).replaceAll("\\p{Mn}+", "")
Мне нужно сначала нормализовать егоразбить «ǎ» на «а» и диакритическую метку.