Parece que las propiedades textarea selectionEnd un elemento de área de texto en Javascript no son seguras para varios bytes, y devuelven valores incorrectos para el desplazamiento de selectionStart cuando hay caracteres de varios bytes:
https://jsfiddle.net/skeets23/wdnrj89k/16/
¿Hay alguna forma de evitar esto y obtener las compensaciones de selección correctas?
Mi caso de uso es: quiero permitir que el usuario guarde una sección de texto "resaltado" en un párrafo determinado. Para que puedan seleccionar texto y presionar "guardar", y envía el valor de "inicio" y "fin" de su selección al back-end (que ya es compatible con varios bytes (PHP, por lo tanto, funciones mb_* ))
Intenté deshabilitar la compatibilidad de varios bytes en el back-end con la esperanza de que al menos el front-end y el back-end trataran las cadenas de múltiples bits de la misma manera, pero ese no fue el caso... me dio texto distorsionado: PAGS