История изменений
Исправление fsb4000, (текущая версия) :
В UTF (особенно если это UTF8) возникает другая проблема — позиционирование по символам, а не по байтам. Есть функция «вытащить из строки символы с 3 по 5», если эти символы в общем случае разной длины, например что-то русско-английское? Вот QString::mid() это обеспечивает.
Изи. Вот функция аналог: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-substring
Там вообще много функций для работы с utf: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html
Вот реализация: https://github.com/winlibs/glib/blob/master/glib/gutf8.c#L263
Если копия не нужна, а нужно просто иметь «string_view», то просто храним два указателя, получаемые этой функцией https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-offset-to-pointer
Исправление fsb4000, :
В UTF (особенно если это UTF8) возникает другая проблема — позиционирование по символам, а не по байтам. Есть функция «вытащить из строки символы с 3 по 5», если эти символы в общем случае разной длины, например что-то русско-английское? Вот QString::mid() это обеспечивает.
Изи. Вот функция аналог: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-substring
Там вообще много функций для работы с utf: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html
Вот реализация: https://github.com/winlibs/glib/blob/master/glib/gutf8.c#L263
Исходная версия fsb4000, :
В UTF (особенно если это UTF8) возникает другая проблема — позиционирование по символам, а не по байтам. Есть функция «вытащить из строки символы с 3 по 5», если эти символы в общем случае разной длины, например что-то русско-английское? Вот QString::mid() это обеспечивает.
Изи. Вот функция аналог: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html#g-utf8-substring
Там вообще много функций для работы с utf: https://developer.gnome.org/glib/stable/glib-Unicode-Manipulation.html