Problem is actual since check-in [32ad9a1584] after closing ticket [3f0216560679fd41]. When using only ascii (ansi) names all's ok.

How to reproduce:
<verbatim>
$ fossil new local.fossil
project-id:
server-id:
admin-user: flanker (initial password is "******")
$ fossil open local.fossil
$ fossil add "Приложение 3.doc"
ADDED  Приложение 3.doc
$ fossil commit -m "test"
New_Version:
$ fossil add 123.txt
ADDED  123.txt
$ fossil commit -m "test2"
New_Version:
fossil: manifest file (5) is malformed
</verbatim>

The most sensitive change in this check-in was:
<verbatim>
+int fossil_strcmp(const char *zA, const char *zB){
+  if( zA==0 ){
+    if( zB==0 ) return 0;
+    return -1;
+  }else if( zB==0 ){
+    return +1;
+  }else{
+    int a, b;
+    do{
+      a = *zA++;
+      b = *zB++;
+    }while( a==b && a!=0 );
+    return a - b;
   }
 }
</verbatim>

Author said that this function can compare strings without considering locale. Maybe problem is here.