>>772で問題ないと言ったけど不具合あったから訂正

C++の仕様でshrink_to_fit()が効かないことがある(他の手法でもダメでした)ので
「Common/Data/Encoding/Utf8.cpp」の530行目付近のif文修正に変更

 while (uint32_t c = utf.next()) {
-  //if (destw + UTF16LE::encodeUnitsUCS2(c) >= destwEnd) {
+  if (destw + UTF16LE::encodeUnitsUCS2(c) >= destwEnd || c > USHRT_MAX) {
    break;
   }
   destw += UTF16LE::encodeUCS2(destw, c);
 }