patch 7.4.1782
Problem:    strcharpart() does not work properly with some multi-byte
            characters.
Solution:   Use mb_cptr2len() instead of mb_char2len(). (Hirohito Higashi)
diff --git a/src/testdir/test_expr_utf8.vim b/src/testdir/test_expr_utf8.vim
index c512ddf..e8246ef 100644
--- a/src/testdir/test_expr_utf8.vim
+++ b/src/testdir/test_expr_utf8.vim
@@ -23,6 +23,16 @@
   call assert_equal('á', strcharpart('áxb', 0, 1))
   call assert_equal('x', strcharpart('áxb', 1, 1))
 
+  call assert_equal('いうeお', strcharpart('あいうeお', 1))
+  call assert_equal('い', strcharpart('あいうeお', 1, 1))
+  call assert_equal('いう', strcharpart('あいうeお', 1, 2))
+  call assert_equal('いうe', strcharpart('あいうeお', 1, 3))
+  call assert_equal('いうeお', strcharpart('あいうeお', 1, 4))
+  call assert_equal('eお', strcharpart('あいうeお', 3))
+  call assert_equal('e', strcharpart('あいうeお', 3, 1))
+
+  call assert_equal('あ', strcharpart('あいうeお', -3, 4))
+
   call assert_equal('a', strcharpart('àxb', 0, 1))
   call assert_equal('̀', strcharpart('àxb', 1, 1))
   call assert_equal('x', strcharpart('àxb', 2, 1))