Kartik Prabhu
So there are a bunch of things going on with fragmentions and non-break spaces
* fragmention.js replaces all whitespaces by a normal space while searching for text https://github.com/chapmanu/fragmentions/commit/05a8200296aa78de1f9ed84c4801f5d8c42b18b1#diff-d5b8b19887d954fd0540ec90d72414a9R11.
Now while getting a selection using “window.getSelection().toString()” and encoding it with “encodeURI()” browsers seem to do different things (see demo test: https://kartikprabhu.com/static/demo/selection-encodeURI.html )
* Chrome simply encodes non-break space to UTF-8 “%C2%A0”.
* Firefox replaces a non-break space with normal space and encodes it to “%20”. Bug filed here: https://bugzilla.mozilla.org/show_bug.cgi?id=1324907
To take this into account, I changed the fragmentioner.js script to simply replace the whitespaces in the selection text with normal spaces before constructing the fragmention URL https://github.com/kartikprabhu/fragmentioner/commit/3e578a5e13e311e62053f3b9c2a5edbf5f4804f5#diff-fd4672195ceec838f040facacc154022R85.