fix(Notes Dashboard Widget): avoid HTTP 500 due mid-UTF8 excerpt truncation #630
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix courtesty due to @D-side
This issue occurs when 100 bytes past the start of the note is inside
a UTF-8 multibyte character. E. g. if a note is comprised of 99
single-bytes and 100th multibyte.
This is very easy to hit in Russian, since it uses a Cyrillic charset
(2 bytes per UTF-8 char), but spaces and punctuation from ASCII
(1 byte each). But since the condition is so obscure, some texts
work and some don't seemingly at random (except not!).
Based on https://stackoverflow.com/q/9087502/ it seems that
using
mb_substrwithutf-8seems to be the better approach