LINUX.ORG.RU

История изменений

Исправление 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