diff --git a/mozilla/content/shared/src/nsHTMLUtils.cpp b/mozilla/content/shared/src/nsHTMLUtils.cpp index af5bc8819c3..85434a07a47 100644 --- a/mozilla/content/shared/src/nsHTMLUtils.cpp +++ b/mozilla/content/shared/src/nsHTMLUtils.cpp @@ -88,6 +88,13 @@ NS_MakeAbsoluteURIWithCharset(nsACString &aResult, if (aDocument && NS_FAILED(aDocument->GetDocumentCharacterSet(originCharset))) originCharset.Truncate(); + // URI can't be encoded in UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32-LE, + // UTF-32LE, UTF-32BE (yet?). Truncate it and leave it to default (UTF-8) + if (originCharset[0] == 'U' && + originCharset[1] == 'T' && + originCharset[2] == 'F') + originCharset.Truncate(); + rv = nsHTMLUtils::IOService->NewURI(NS_ConvertUCS2toUTF8(aSpec), NS_LossyConvertUCS2toASCII(originCharset).get(), aBaseURI, getter_AddRefs(absURI));