aDest.SetLength(aSource.Length());  nsACString::const_iterator fromBegin, fromEnd;  nsAString::iterator toBegin; LossyConvertEncoding<char, PRUnichar> converter(aDest.BeginWriting(toBegin).get());  copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);
aDest.Truncate(); AppendASCIItoUTF16(aSource, aDest);
CopyASCIItoUTF16( const nsACString& aSource, nsAString& aDest )  {      // right now, this won't work on multi-fragment destinations    aDest.SetLength(aSource.Length());    nsACString::const_iterator fromBegin, fromEnd;    nsAString::iterator toBegin;    LossyConvertEncoding<char, PRUnichar> converter(aDest.BeginWriting(toBegin).get());    copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);  }