Тайские проблемы со строками, вызванные неправильной длиной строки
Я пытаюсь выделить некоторую подстроку в тайском тексте:
high = high.Insert(myString.Index + myString.Length + "<b>" + currentLength, "</b>");
Проблема в том, что myString
Строка содержит специальный тайский символ ("เงินฝาก"). Заданная строка должна иметь длину 7, но длина определяется как 6. Который выделяет текст только частично, не включая последний символ.
Я пытался кодировать строку (как высокий, так и myString
строка). Но это не сработало. Есть ли у вас какие-либо советы, как с этим справиться? Я также попробовал Replace
метод, но безрезультатно.
Заранее спасибо!
1 ответ
Простая концепция состоит в том, чтобы игнорировать подсчет тайского символа верхнего и нижнего индексов, как в примере кода ниже:
public int ThaiLength(string text)
{
int c = 0;
int l = text.Length;
for (int i = 0; i < l; ++i)
{
if (char.GetUnicodeCategory(text[i]) != System.Globalization.UnicodeCategory.NonSpacingMark)
++c;
}
return c;
}