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