message: Fixed the infinite loop issue for invalid input strings.
  Note: ConstChar32Iterator does not support invalid input. It will just stop iteration when it find the invalid value.
diff: @@ -374,9 +374,12 @@ bool CharacterFormManagerImpl::TryConvertStringWithPreference(
  std::string buf;
  while (begin < end) {
  - // TODO(team): Replace by iterator.
  size_t mblen = 0;
  const char32 ucs4 = Util::Utf8ToUcs4(begin, end, &mblen);
  + if (mblen == 0) { // Invalid Utf8 string
  + ++begin;
  + continue;
  + }
  const Util::ScriptType type = Util::GetScriptType(ucs4);
  // Cache previous ScriptType to reduce to call GetCharacterForm()
  Config::CharacterForm form = prev_form;
  