This constructor should be taken out back and put out of its misery.

I wonder if we shouldn't instead write it as:

  PersonIdent self = RawParseUtils.parsePersonIdent(Constants.encode("author " + in), 7);
  ... copy fields from self to this ...

That way we only have a single routine to parse the canonical formatting.  This constructor should be infrequently used, so dropping to UTF-8 byte[] and then upconverting back to String shouldn't be a major performance hit in exchange for having just one implementation to test and maintain.