Back to index

lightning-sunbird  0.9+nobinonly
nsUConvModule.cpp
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is Mozilla Communicator client code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Pierre Phaneuf <pp@ludusdesign.com>
00024  *   IBM Corporation
00025  *
00026  * Alternatively, the contents of this file may be used under the terms of
00027  * either of the GNU General Public License Version 2 or later (the "GPL"),
00028  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00029  * in which case the provisions of the GPL or the LGPL are applicable instead
00030  * of those above. If you wish to allow use of your version of this file only
00031  * under the terms of either the GPL or the LGPL, and not to allow others to
00032  * use your version of this file under the terms of the MPL, indicate your
00033  * decision by deleting the provisions above and replace them with the notice
00034  * and other provisions required by the GPL or the LGPL. If you do not delete
00035  * the provisions above, a recipient may use your version of this file under
00036  * the terms of any one of the MPL, the GPL or the LGPL.
00037  *
00038  * ***** END LICENSE BLOCK ***** */
00039 #include "nsCOMPtr.h"
00040 #include "nsCRT.h"
00041 #include "nsIModule.h"
00042 #include "nsIGenericFactory.h"
00043 #include "nsIComponentManager.h"
00044 #include "nsICategoryManager.h"
00045 #include "nsICharsetConverterManager.h"
00046 #include "nsEncoderDecoderUtils.h"
00047 #include "nsIUnicodeDecoder.h"
00048 #include "nsIUnicodeEncoder.h"
00049 #include "nsICharsetAlias.h"
00050 #include "nsIServiceManager.h"
00051 
00052 
00053 #include "nsUConvCID.h"
00054 #include "nsCharsetConverterManager.h"
00055 #include "nsCharsetAlias.h"
00056 #include "nsTextToSubURI.h"
00057 #include "nsUTF8ConverterService.h"
00058 #include "nsConverterInputStream.h"
00059 #include "nsConverterOutputStream.h"
00060 #include "nsPlatformCharset.h"
00061 
00062 #ifndef MOZ_USE_NATIVE_UCONV
00063 #include "nsIUnicodeDecodeHelper.h"
00064 #include "nsIUnicodeEncodeHelper.h"
00065 #include "nsIPlatformCharset.h"
00066 #include "nsITextToSubURI.h"
00067 
00068 #include "nsUConvDll.h"
00069 #include "nsIFile.h"
00070 #include "nsIScriptableUConv.h"
00071 
00072 #include "nsCRT.h"
00073 
00074 #include "nsUCSupport.h"
00075 #include "nsUnicodeDecodeHelper.h"
00076 #include "nsUnicodeEncodeHelper.h"
00077 #include "nsISO88591ToUnicode.h"
00078 #include "nsCP1252ToUnicode.h"
00079 #include "nsMacRomanToUnicode.h"
00080 #include "nsUTF8ToUnicode.h"
00081 #include "nsUnicodeToISO88591.h"
00082 #include "nsUnicodeToCP1252.h"
00083 #include "nsUnicodeToMacRoman.h"
00084 #include "nsUnicodeToUTF8.h"
00085 #include "nsScriptableUConv.h"
00086 
00087 // ucvlatin
00088 #include "nsUCvLatinCID.h"
00089 #include "nsUCvLatinDll.h"
00090 #include "nsAsciiToUnicode.h"
00091 #include "nsISO88592ToUnicode.h"
00092 #include "nsISO88593ToUnicode.h"
00093 #include "nsISO88594ToUnicode.h"
00094 #include "nsISO88595ToUnicode.h"
00095 #include "nsISO88596ToUnicode.h"
00096 #include "nsISO88596EToUnicode.h"
00097 #include "nsISO88596IToUnicode.h"
00098 #include "nsISO88597ToUnicode.h"
00099 #include "nsISO88598ToUnicode.h"
00100 #include "nsISO88598EToUnicode.h"
00101 #include "nsISO88598IToUnicode.h"
00102 #include "nsISO88599ToUnicode.h"
00103 #include "nsISO885910ToUnicode.h"
00104 #include "nsISO885913ToUnicode.h"
00105 #include "nsISO885914ToUnicode.h"
00106 #include "nsISO885915ToUnicode.h"
00107 #include "nsISO885916ToUnicode.h"
00108 #include "nsISOIR111ToUnicode.h"
00109 #include "nsCP1250ToUnicode.h"
00110 #include "nsCP1251ToUnicode.h"
00111 #include "nsCP1253ToUnicode.h"
00112 #include "nsCP1254ToUnicode.h"
00113 #include "nsCP1255ToUnicode.h"
00114 #include "nsCP1256ToUnicode.h"
00115 #include "nsCP1257ToUnicode.h"
00116 #include "nsCP1258ToUnicode.h"
00117 #include "nsCP874ToUnicode.h"
00118 #include "nsISO885911ToUnicode.h"
00119 #include "nsTIS620ToUnicode.h"
00120 #include "nsCP866ToUnicode.h"
00121 #include "nsKOI8RToUnicode.h"
00122 #include "nsKOI8UToUnicode.h"
00123 #include "nsMacCEToUnicode.h"
00124 #include "nsMacGreekToUnicode.h"
00125 #include "nsMacTurkishToUnicode.h"
00126 #include "nsMacCroatianToUnicode.h"
00127 #include "nsMacRomanianToUnicode.h"
00128 #include "nsMacCyrillicToUnicode.h"
00129 #include "nsMacUkrainianToUnicode.h"
00130 #include "nsMacIcelandicToUnicode.h"
00131 #include "nsGEOSTD8ToUnicode.h"
00132 #include "nsARMSCII8ToUnicode.h"
00133 #include "nsTCVN5712ToUnicode.h"
00134 #include "nsVISCIIToUnicode.h"
00135 #include "nsVPSToUnicode.h"
00136 #include "nsUTF7ToUnicode.h"
00137 #include "nsMUTF7ToUnicode.h"
00138 #include "nsUTF32ToUnicode.h"
00139 #include "nsUCS2BEToUnicode.h"
00140 #include "nsT61ToUnicode.h"
00141 #include "nsUserDefinedToUnicode.h"
00142 #include "nsUnicodeToAscii.h"
00143 #include "nsUnicodeToISO88592.h"
00144 #include "nsUnicodeToISO88593.h"
00145 #include "nsUnicodeToISO88594.h"
00146 #include "nsUnicodeToISO88595.h"
00147 #include "nsUnicodeToISO88596.h"
00148 #include "nsUnicodeToISO88596E.h"
00149 #include "nsUnicodeToISO88596I.h"
00150 #include "nsUnicodeToISO88597.h"
00151 #include "nsUnicodeToISO88598.h"
00152 #include "nsUnicodeToISO88598E.h"
00153 #include "nsUnicodeToISO88598I.h"
00154 #include "nsUnicodeToISO88599.h"
00155 #include "nsUnicodeToISO885910.h"
00156 #include "nsUnicodeToISO885913.h"
00157 #include "nsUnicodeToISO885914.h"
00158 #include "nsUnicodeToISO885915.h"
00159 #include "nsUnicodeToISO885916.h"
00160 #include "nsUnicodeToISOIR111.h"
00161 #include "nsUnicodeToCP1250.h"
00162 #include "nsUnicodeToCP1251.h"
00163 #include "nsUnicodeToCP1253.h"
00164 #include "nsUnicodeToCP1254.h"
00165 #include "nsUnicodeToCP1255.h"
00166 #include "nsUnicodeToCP1256.h"
00167 #include "nsUnicodeToCP1257.h"
00168 #include "nsUnicodeToCP1258.h"
00169 #include "nsUnicodeToCP874.h"
00170 #include "nsUnicodeToISO885911.h"
00171 #include "nsUnicodeToTIS620.h"
00172 #include "nsUnicodeToCP866.h"
00173 #include "nsUnicodeToKOI8R.h"
00174 #include "nsUnicodeToKOI8U.h"
00175 #include "nsUnicodeToMacCE.h"
00176 #include "nsUnicodeToMacGreek.h"
00177 #include "nsUnicodeToMacTurkish.h"
00178 #include "nsUnicodeToMacCroatian.h"
00179 #include "nsUnicodeToMacRomanian.h"
00180 #include "nsUnicodeToMacCyrillic.h"
00181 #include "nsUnicodeToMacUkrainian.h"
00182 #include "nsUnicodeToMacIcelandic.h"
00183 #include "nsUnicodeToGEOSTD8.h"
00184 #include "nsUnicodeToARMSCII8.h"
00185 #include "nsUnicodeToTCVN5712.h"
00186 #include "nsUnicodeToVISCII.h"
00187 #include "nsUnicodeToVPS.h"
00188 #include "nsUnicodeToUTF7.h"
00189 #include "nsUnicodeToMUTF7.h"
00190 #include "nsUnicodeToUCS2BE.h"
00191 #include "nsUnicodeToUTF32.h"
00192 #include "nsUnicodeToT61.h"
00193 #include "nsUnicodeToUserDefined.h"
00194 #include "nsUnicodeToSymbol.h"
00195 #include "nsUnicodeToZapfDingbat.h"
00196 #include "nsUnicodeToAdobeEuro.h"
00197 #include "nsMacArabicToUnicode.h"
00198 #include "nsMacDevanagariToUnicode.h"
00199 #include "nsMacFarsiToUnicode.h"
00200 #include "nsMacGujaratiToUnicode.h"
00201 #include "nsMacGurmukhiToUnicode.h"
00202 #include "nsMacHebrewToUnicode.h"
00203 #include "nsUnicodeToMacArabic.h"
00204 #include "nsUnicodeToMacDevanagari.h"
00205 #include "nsUnicodeToMacFarsi.h"
00206 #include "nsUnicodeToMacGujarati.h"
00207 #include "nsUnicodeToMacGurmukhi.h"
00208 #include "nsUnicodeToMacHebrew.h"
00209 #include "nsUnicodeToTSCII.h"
00210 #ifdef MOZ_EXTRA_X11CONVERTERS
00211 #include "nsUnicodeToLangBoxArabic8.h"
00212 #include "nsUnicodeToLangBoxArabic16.h"
00213 #endif // MOZ_EXTRA_X11CONVERTERS
00214 
00215 // ucvibm
00216 #include "nsUCvIBMCID.h"
00217 #include "nsUCvIBMDll.h"
00218 #include "nsCP850ToUnicode.h"
00219 #include "nsCP852ToUnicode.h"
00220 #include "nsCP855ToUnicode.h"
00221 #include "nsCP857ToUnicode.h"
00222 #include "nsCP862ToUnicode.h"
00223 #include "nsCP864ToUnicode.h"
00224 #include "nsCP864iToUnicode.h"
00225 #ifdef MOZ_EXTRA_X11CONVERTERS
00226 #include "nsCP1046ToUnicode.h"
00227 #endif
00228 #ifdef XP_OS2
00229 #include "nsCP869ToUnicode.h"
00230 #endif
00231 #include "nsUnicodeToCP850.h"
00232 #include "nsUnicodeToCP852.h"
00233 #include "nsUnicodeToCP855.h"
00234 #include "nsUnicodeToCP857.h"
00235 #include "nsUnicodeToCP862.h"
00236 #include "nsUnicodeToCP864.h"
00237 #include "nsUnicodeToCP864i.h"
00238 #ifdef MOZ_EXTRA_X11CONVERTERS
00239 #include "nsUnicodeToCP1046.h"
00240 #endif
00241 #ifdef XP_OS2
00242 #include "nsUnicodeToCP869.h"
00243 #endif
00244 
00245 // ucvja
00246 #include "nsUCVJACID.h"
00247 #include "nsUCVJA2CID.h"
00248 #include "nsUCVJADll.h"
00249 #include "nsJapaneseToUnicode.h"
00250 #include "nsUnicodeToSJIS.h"
00251 #include "nsUnicodeToEUCJP.h"
00252 #include "nsUnicodeToISO2022JP.h"
00253 #include "nsUnicodeToJISx0201.h"
00254 #ifdef MOZ_EXTRA_X11CONVERTERS
00255 #include "nsUnicodeToJISx0208.h"
00256 #include "nsUnicodeToJISx0212.h"
00257 #endif
00258 
00259 // ucvtw2
00260 #include "nsUCvTW2CID.h"
00261 #include "nsUCvTW2Dll.h"
00262 #include "nsEUCTWToUnicode.h"
00263 #include "nsUnicodeToEUCTW.h"
00264 #ifdef MOZ_EXTRA_X11CONVERTERS
00265 #include "nsUnicodeToCNS11643p1.h"
00266 #include "nsUnicodeToCNS11643p2.h"
00267 #include "nsUnicodeToCNS11643p3.h"
00268 #include "nsUnicodeToCNS11643p4.h"
00269 #include "nsUnicodeToCNS11643p5.h"
00270 #include "nsUnicodeToCNS11643p6.h"
00271 #include "nsUnicodeToCNS11643p7.h"
00272 #endif
00273 
00274 // ucvtw
00275 #include "nsUCvTWCID.h"
00276 #include "nsUCvTWDll.h"
00277 #include "nsBIG5ToUnicode.h"
00278 #include "nsUnicodeToBIG5.h"
00279 #ifdef MOZ_EXTRA_X11CONVERTERS
00280 #include "nsUnicodeToBIG5NoAscii.h"
00281 #endif
00282 #include "nsBIG5HKSCSToUnicode.h"
00283 #include "nsUnicodeToBIG5HKSCS.h"
00284 #include "nsUnicodeToHKSCS.h"
00285 
00286 // ucvko
00287 #include "nsUCvKOCID.h"
00288 #include "nsUCvKODll.h"
00289 #include "nsEUCKRToUnicode.h"
00290 #include "nsUnicodeToEUCKR.h"
00291 #include "nsJohabToUnicode.h"
00292 #include "nsUnicodeToJohab.h"
00293 #ifdef MOZ_EXTRA_X11CONVERTERS
00294 #include "nsUnicodeToKSC5601.h"
00295 #include "nsUnicodeToX11Johab.h"
00296 #include "nsUnicodeToJohabNoAscii.h"
00297 #endif
00298 #include "nsCP949ToUnicode.h"
00299 #include "nsUnicodeToCP949.h"
00300 #include "nsISO2022KRToUnicode.h"
00301 #include "nsUnicodeToJamoTTF.h"
00302 
00303 // ucvcn
00304 #include "nsUCvCnCID.h"
00305 #include "nsUCvCnDll.h"
00306 #include "nsHZToUnicode.h"
00307 #include "nsUnicodeToHZ.h"
00308 #include "nsGBKToUnicode.h"
00309 #include "nsUnicodeToGBK.h"
00310 #ifdef MOZ_EXTRA_X11CONVERTERS
00311 #include "nsUnicodeToGBKNoAscii.h"
00312 #endif
00313 #include "nsCP936ToUnicode.h"
00314 #include "nsUnicodeToCP936.h"
00315 #include "nsGB2312ToUnicodeV2.h"
00316 #include "nsUnicodeToGB2312V2.h"
00317 #ifdef MOZ_EXTRA_X11CONVERTERS
00318 #include "nsUnicodeToGB2312GL.h"
00319 #endif
00320 #include "nsISO2022CNToUnicode.h"
00321 #include "nsUnicodeToISO2022CN.h"
00322 #include "gbku.h"
00323 
00324 #define DECODER_NAME_BASE "Unicode Decoder-"
00325 #define ENCODER_NAME_BASE "Unicode Encoder-"
00326 
00327 NS_CONVERTER_REGISTRY_START
00328 NS_UCONV_REG_UNREG("ISO-8859-1", NS_ISO88591TOUNICODE_CID, NS_UNICODETOISO88591_CID)
00329 NS_UCONV_REG_UNREG("windows-1252", NS_CP1252TOUNICODE_CID, NS_UNICODETOCP1252_CID)
00330 NS_UCONV_REG_UNREG("x-mac-roman", NS_MACROMANTOUNICODE_CID, NS_UNICODETOMACROMAN_CID)
00331 NS_UCONV_REG_UNREG("UTF-8", NS_UTF8TOUNICODE_CID, NS_UNICODETOUTF8_CID)
00332 
00333   // ucvlatin
00334 NS_UCONV_REG_UNREG("us-ascii", NS_ASCIITOUNICODE_CID, NS_UNICODETOASCII_CID)
00335 NS_UCONV_REG_UNREG("ISO-8859-2", NS_ISO88592TOUNICODE_CID, NS_UNICODETOISO88592_CID)
00336 NS_UCONV_REG_UNREG("ISO-8859-3", NS_ISO88593TOUNICODE_CID, NS_UNICODETOISO88593_CID)
00337 NS_UCONV_REG_UNREG("ISO-8859-4", NS_ISO88594TOUNICODE_CID, NS_UNICODETOISO88594_CID)
00338 NS_UCONV_REG_UNREG("ISO-8859-5", NS_ISO88595TOUNICODE_CID, NS_UNICODETOISO88595_CID)
00339 NS_UCONV_REG_UNREG("ISO-8859-6", NS_ISO88596TOUNICODE_CID, NS_UNICODETOISO88596_CID)
00340 NS_UCONV_REG_UNREG("ISO-8859-6-I", NS_ISO88596ITOUNICODE_CID, NS_UNICODETOISO88596I_CID)
00341 NS_UCONV_REG_UNREG("ISO-8859-6-E", NS_ISO88596ETOUNICODE_CID, NS_UNICODETOISO88596E_CID)
00342 NS_UCONV_REG_UNREG("ISO-8859-7", NS_ISO88597TOUNICODE_CID, NS_UNICODETOISO88597_CID)
00343 NS_UCONV_REG_UNREG("ISO-8859-8", NS_ISO88598TOUNICODE_CID, NS_UNICODETOISO88598_CID)
00344 NS_UCONV_REG_UNREG("ISO-8859-8-I", NS_ISO88598ITOUNICODE_CID, NS_UNICODETOISO88598I_CID)
00345 NS_UCONV_REG_UNREG("ISO-8859-8-E", NS_ISO88598ETOUNICODE_CID, NS_UNICODETOISO88598E_CID)
00346 NS_UCONV_REG_UNREG("ISO-8859-9", NS_ISO88599TOUNICODE_CID, NS_UNICODETOISO88599_CID)
00347 NS_UCONV_REG_UNREG("ISO-8859-10", NS_ISO885910TOUNICODE_CID, NS_UNICODETOISO885910_CID)
00348 NS_UCONV_REG_UNREG("ISO-8859-13", NS_ISO885913TOUNICODE_CID, NS_UNICODETOISO885913_CID)
00349 NS_UCONV_REG_UNREG("ISO-8859-14", NS_ISO885914TOUNICODE_CID, NS_UNICODETOISO885914_CID)
00350 NS_UCONV_REG_UNREG("ISO-8859-15", NS_ISO885915TOUNICODE_CID, NS_UNICODETOISO885915_CID)
00351 NS_UCONV_REG_UNREG("ISO-8859-16", NS_ISO885916TOUNICODE_CID, NS_UNICODETOISO885916_CID)
00352 NS_UCONV_REG_UNREG("ISO-IR-111", NS_ISOIR111TOUNICODE_CID, NS_UNICODETOISOIR111_CID)
00353 NS_UCONV_REG_UNREG("windows-1250", NS_CP1250TOUNICODE_CID, NS_UNICODETOCP1250_CID)
00354 NS_UCONV_REG_UNREG("windows-1251", NS_CP1251TOUNICODE_CID, NS_UNICODETOCP1251_CID)
00355 NS_UCONV_REG_UNREG("windows-1253", NS_CP1253TOUNICODE_CID, NS_UNICODETOCP1253_CID)
00356 NS_UCONV_REG_UNREG("windows-1254", NS_CP1254TOUNICODE_CID, NS_UNICODETOCP1254_CID)
00357 NS_UCONV_REG_UNREG("windows-1255", NS_CP1255TOUNICODE_CID, NS_UNICODETOCP1255_CID)
00358 NS_UCONV_REG_UNREG("windows-1256", NS_CP1256TOUNICODE_CID, NS_UNICODETOCP1256_CID)
00359 NS_UCONV_REG_UNREG("windows-1257", NS_CP1257TOUNICODE_CID, NS_UNICODETOCP1257_CID)
00360 NS_UCONV_REG_UNREG("windows-1258", NS_CP1258TOUNICODE_CID, NS_UNICODETOCP1258_CID)
00361 NS_UCONV_REG_UNREG("TIS-620", NS_TIS620TOUNICODE_CID, NS_UNICODETOTIS620_CID)
00362 NS_UCONV_REG_UNREG("windows-874", NS_CP874TOUNICODE_CID, NS_UNICODETOCP874_CID)
00363 NS_UCONV_REG_UNREG("ISO-8859-11", NS_ISO885911TOUNICODE_CID, NS_UNICODETOISO885911_CID)
00364 NS_UCONV_REG_UNREG("IBM866", NS_CP866TOUNICODE_CID, NS_UNICODETOCP866_CID)
00365 NS_UCONV_REG_UNREG("KOI8-R", NS_KOI8RTOUNICODE_CID, NS_UNICODETOKOI8R_CID)
00366 NS_UCONV_REG_UNREG("KOI8-U", NS_KOI8UTOUNICODE_CID, NS_UNICODETOKOI8U_CID)
00367 NS_UCONV_REG_UNREG("x-mac-ce", NS_MACCETOUNICODE_CID, NS_UNICODETOMACCE_CID)
00368 NS_UCONV_REG_UNREG("x-mac-greek", NS_MACGREEKTOUNICODE_CID, NS_UNICODETOMACGREEK_CID)
00369 NS_UCONV_REG_UNREG("x-mac-turkish", NS_MACTURKISHTOUNICODE_CID, NS_UNICODETOMACTURKISH_CID)
00370 NS_UCONV_REG_UNREG("x-mac-croatian", NS_MACCROATIANTOUNICODE_CID, NS_UNICODETOMACCROATIAN_CID)
00371 NS_UCONV_REG_UNREG("x-mac-romanian", NS_MACROMANIANTOUNICODE_CID, NS_UNICODETOMACROMANIAN_CID)
00372 NS_UCONV_REG_UNREG("x-mac-cyrillic", NS_MACCYRILLICTOUNICODE_CID, NS_UNICODETOMACCYRILLIC_CID)
00373 NS_UCONV_REG_UNREG("x-mac-ukrainian", NS_MACUKRAINIANTOUNICODE_CID, NS_UNICODETOMACUKRAINIAN_CID)
00374 NS_UCONV_REG_UNREG("x-mac-icelandic", NS_MACICELANDICTOUNICODE_CID, NS_UNICODETOMACICELANDIC_CID)
00375 NS_UCONV_REG_UNREG("GEOSTD8", NS_GEOSTD8TOUNICODE_CID, NS_UNICODETOGEOSTD8_CID)
00376 NS_UCONV_REG_UNREG("armscii-8", NS_ARMSCII8TOUNICODE_CID, NS_UNICODETOARMSCII8_CID)
00377 NS_UCONV_REG_UNREG("x-viet-tcvn5712", NS_TCVN5712TOUNICODE_CID, NS_UNICODETOTCVN5712_CID)
00378 NS_UCONV_REG_UNREG("VISCII", NS_VISCIITOUNICODE_CID, NS_UNICODETOVISCII_CID)
00379 NS_UCONV_REG_UNREG("x-viet-vps", NS_VPSTOUNICODE_CID, NS_UNICODETOVPS_CID)
00380 NS_UCONV_REG_UNREG("UTF-7", NS_UTF7TOUNICODE_CID, NS_UNICODETOUTF7_CID)
00381 NS_UCONV_REG_UNREG("x-imap4-modified-utf7", NS_MUTF7TOUNICODE_CID, NS_UNICODETOMUTF7_CID)
00382 NS_UCONV_REG_UNREG("UTF-16", NS_UTF16TOUNICODE_CID, NS_UNICODETOUTF16_CID)
00383 NS_UCONV_REG_UNREG("UTF-16BE", NS_UTF16BETOUNICODE_CID, NS_UNICODETOUTF16BE_CID)
00384 NS_UCONV_REG_UNREG("UTF-16LE", NS_UTF16LETOUNICODE_CID, NS_UNICODETOUTF16LE_CID)
00385 NS_UCONV_REG_UNREG("UTF-32BE", NS_UTF32BETOUNICODE_CID, NS_UNICODETOUTF32BE_CID)
00386 NS_UCONV_REG_UNREG("UTF-32LE", NS_UTF32LETOUNICODE_CID, NS_UNICODETOUTF32LE_CID)
00387 NS_UCONV_REG_UNREG("T.61-8bit", NS_T61TOUNICODE_CID, NS_UNICODETOT61_CID)
00388 NS_UCONV_REG_UNREG("x-user-defined", NS_USERDEFINEDTOUNICODE_CID, NS_UNICODETOUSERDEFINED_CID)
00389 NS_UCONV_REG_UNREG("x-mac-arabic" , NS_MACARABICTOUNICODE_CID, NS_UNICODETOMACARABIC_CID)
00390 NS_UCONV_REG_UNREG("x-mac-devanagari" , NS_MACDEVANAGARITOUNICODE_CID, NS_UNICODETOMACDEVANAGARI_CID)
00391 NS_UCONV_REG_UNREG("x-mac-farsi" , NS_MACFARSITOUNICODE_CID, NS_UNICODETOMACFARSI_CID)
00392 NS_UCONV_REG_UNREG("x-mac-gurmukhi" , NS_MACGURMUKHITOUNICODE_CID, NS_UNICODETOMACGURMUKHI_CID)
00393 NS_UCONV_REG_UNREG("x-mac-gujarati" , NS_MACGUJARATITOUNICODE_CID, NS_UNICODETOMACGUJARATI_CID)
00394 NS_UCONV_REG_UNREG("x-mac-hebrew" , NS_MACHEBREWTOUNICODE_CID, NS_UNICODETOMACHEBREW_CID)
00395 
00396 NS_UCONV_REG_UNREG_ENCODER("Adobe-Symbol-Encoding" , NS_UNICODETOSYMBOL_CID)
00397 NS_UCONV_REG_UNREG_ENCODER("x-zapf-dingbats" , NS_UNICODETOZAPFDINGBATS_CID)
00398 NS_UCONV_REG_UNREG_ENCODER("x-tscii",  NS_UNICODETOTSCII_CID)
00399 NS_UCONV_REG_UNREG_ENCODER("x-tamilttf-0",  NS_UNICODETOTAMILTTF_CID)
00400 #ifdef MOZ_EXTRA_X11CONVERTERS
00401 NS_UCONV_REG_UNREG_ENCODER("x-iso-8859-6-8-x" , NS_UNICODETOLANGBOXARABIC_CID)
00402 NS_UCONV_REG_UNREG_ENCODER("x-iso-8859-6-16" , NS_UNICODETOLANGBOXARABIC16_CID)
00403 #endif // MOZ_EXTRA_X11CONVERTERS
00404 
00405   // ucvibm
00406 NS_UCONV_REG_UNREG("IBM850", NS_CP850TOUNICODE_CID, NS_UNICODETOCP850_CID)
00407 NS_UCONV_REG_UNREG("IBM852", NS_CP852TOUNICODE_CID, NS_UNICODETOCP852_CID)
00408 NS_UCONV_REG_UNREG("IBM855", NS_CP855TOUNICODE_CID, NS_UNICODETOCP855_CID)
00409 NS_UCONV_REG_UNREG("IBM857", NS_CP857TOUNICODE_CID, NS_UNICODETOCP857_CID)
00410 NS_UCONV_REG_UNREG("IBM862", NS_CP862TOUNICODE_CID, NS_UNICODETOCP862_CID)
00411 NS_UCONV_REG_UNREG("IBM864", NS_CP864TOUNICODE_CID, NS_UNICODETOCP864_CID)
00412 NS_UCONV_REG_UNREG("IBM864i", NS_CP864ITOUNICODE_CID, NS_UNICODETOCP864I_CID)
00413 #ifdef MOZ_EXTRA_X11CONVERTERS
00414 NS_UCONV_REG_UNREG("x-IBM1046", NS_CP1046TOUNICODE_CID, NS_UNICODETOCP1046_CID)
00415 #endif
00416 #ifdef XP_OS2
00417 NS_UCONV_REG_UNREG("IBM869", NS_CP869TOUNICODE_CID, NS_UNICODETOCP869_CID)
00418 #endif
00419 
00420     // ucvja
00421 NS_UCONV_REG_UNREG("Shift_JIS", NS_SJISTOUNICODE_CID, NS_UNICODETOSJIS_CID)
00422 NS_UCONV_REG_UNREG("ISO-2022-JP", NS_ISO2022JPTOUNICODE_CID, NS_UNICODETOISO2022JP_CID)
00423 NS_UCONV_REG_UNREG("EUC-JP", NS_EUCJPTOUNICODE_CID, NS_UNICODETOEUCJP_CID)
00424   
00425 NS_UCONV_REG_UNREG_ENCODER("jis_0201" , NS_UNICODETOJISX0201_CID)
00426 #ifdef MOZ_EXTRA_X11CONVERTERS
00427 NS_UCONV_REG_UNREG_ENCODER("jis_0208-1983" , NS_UNICODETOJISX0208_CID)
00428 NS_UCONV_REG_UNREG_ENCODER("jis_0212-1990" , NS_UNICODETOJISX0212_CID)
00429 #endif
00430 
00431     // ucvtw2
00432 NS_UCONV_REG_UNREG("x-euc-tw", NS_EUCTWTOUNICODE_CID, NS_UNICODETOEUCTW_CID)
00433 #ifdef MOZ_EXTRA_X11CONVERTERS
00434 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-1" , NS_UNICODETOCNS11643P1_CID)
00435 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-2" , NS_UNICODETOCNS11643P2_CID)
00436 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-3" , NS_UNICODETOCNS11643P3_CID)
00437 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-4" , NS_UNICODETOCNS11643P4_CID)
00438 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-5" , NS_UNICODETOCNS11643P5_CID)
00439 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-6" , NS_UNICODETOCNS11643P6_CID)
00440 NS_UCONV_REG_UNREG_ENCODER("x-cns-11643-7" , NS_UNICODETOCNS11643P7_CID)
00441 #endif
00442 
00443     // ucvtw
00444 NS_UCONV_REG_UNREG("Big5", NS_BIG5TOUNICODE_CID, NS_UNICODETOBIG5_CID)
00445 NS_UCONV_REG_UNREG("Big5-HKSCS", NS_BIG5HKSCSTOUNICODE_CID, NS_UNICODETOBIG5HKSCS_CID)
00446   
00447 NS_UCONV_REG_UNREG_ENCODER("hkscs-1" , NS_UNICODETOHKSCS_CID)
00448 #ifdef MOZ_EXTRA_X11CONVERTERS
00449 NS_UCONV_REG_UNREG_ENCODER("x-x-big5",  NS_UNICODETOBIG5NOASCII_CID)
00450 #endif
00451 
00452     // ucvko
00453 NS_UCONV_REG_UNREG("EUC-KR", NS_EUCKRTOUNICODE_CID, NS_UNICODETOEUCKR_CID)
00454 NS_UCONV_REG_UNREG("x-johab", NS_JOHABTOUNICODE_CID, NS_UNICODETOJOHAB_CID)
00455 NS_UCONV_REG_UNREG("x-windows-949", NS_CP949TOUNICODE_CID, NS_UNICODETOCP949_CID)
00456 NS_UCONV_REG_UNREG_DECODER("ISO-2022-KR", NS_ISO2022KRTOUNICODE_CID)
00457 NS_UCONV_REG_UNREG_ENCODER("x-koreanjamo-0",  NS_UNICODETOJAMOTTF_CID)
00458 
00459 #ifdef MOZ_EXTRA_X11CONVERTERS
00460 NS_UCONV_REG_UNREG_ENCODER("ks_c_5601-1987",  NS_UNICODETOKSC5601_CID)
00461 NS_UCONV_REG_UNREG_ENCODER("x-x11johab",  NS_UNICODETOX11JOHAB_CID)
00462 NS_UCONV_REG_UNREG_ENCODER("x-johab-noascii",  NS_UNICODETOJOHABNOASCII_CID)
00463 #endif
00464 
00465 // ucvcn
00466 NS_UCONV_REG_UNREG("GB2312", NS_GB2312TOUNICODE_CID, NS_UNICODETOGB2312_CID)
00467 NS_UCONV_REG_UNREG("windows-936", NS_CP936TOUNICODE_CID, NS_UNICODETOCP936_CID)
00468 NS_UCONV_REG_UNREG("x-gbk", NS_GBKTOUNICODE_CID, NS_UNICODETOGBK_CID)
00469 #ifdef MOZ_EXTRA_X11CONVERTERS
00470 NS_UCONV_REG_UNREG_ENCODER("x-gbk-noascii",  NS_UNICODETOGBKNOASCII_CID)
00471 #endif
00472 NS_UCONV_REG_UNREG("HZ-GB-2312", NS_HZTOUNICODE_CID, NS_UNICODETOHZ_CID)
00473 #ifdef MOZ_EXTRA_X11CONVERTERS
00474 NS_UCONV_REG_UNREG_ENCODER("gb_2312-80",  NS_UNICODETOGB2312GL_CID)
00475 #endif
00476 NS_UCONV_REG_UNREG("gb18030", NS_GB18030TOUNICODE_CID, NS_UNICODETOGB18030_CID)
00477 #ifdef MOZ_EXTRA_X11CONVERTERS
00478 NS_UCONV_REG_UNREG_ENCODER("gb18030.2000-0",  NS_UNICODETOGB18030Font0_CID)
00479 NS_UCONV_REG_UNREG_ENCODER("gb18030.2000-1",  NS_UNICODETOGB18030Font1_CID)
00480 #endif
00481 NS_UCONV_REG_UNREG_DECODER("ISO-2022-CN", NS_ISO2022CNTOUNICODE_CID)
00482   
00483 NS_CONVERTER_REGISTRY_END
00484 
00485 NS_IMPL_NSUCONVERTERREGSELF
00486 
00487 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeDecodeHelper)
00488 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeEncodeHelper)
00489 NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableUnicodeConverter)
00490 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF8)
00491 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ToUnicode)
00492 
00493 // ucvlatin
00494 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF7ToUnicode)
00495 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMUTF7ToUnicode)
00496 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16ToUnicode)
00497 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16BEToUnicode)
00498 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16LEToUnicode)
00499 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF32BEToUnicode)
00500 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF32LEToUnicode)
00501 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF7)
00502 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToMUTF7)
00503 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16BE)
00504 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16LE)
00505 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16)
00506 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF32BE)
00507 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF32LE)
00508 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToTSCII)
00509 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToTamilTTF)
00510 #ifdef MOZ_EXTRA_X11CONVERTERS
00511 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToLangBoxArabic8)
00512 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToLangBoxArabic16)
00513 #endif // MOZ_EXTRA_X11CONVERTERS
00514 
00515 // ucvibm
00516 
00517 // ucvja
00518 NS_GENERIC_FACTORY_CONSTRUCTOR(nsShiftJISToUnicode)
00519 NS_GENERIC_FACTORY_CONSTRUCTOR(nsEUCJPToUnicodeV2)
00520 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022JPToUnicodeV2)
00521 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToISO2022JP)
00522 
00523 // ucvtw2
00524 
00525 // ucvtw
00526 #ifdef MOZ_EXTRA_X11CONVERTERS
00527 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToBIG5NoAscii)
00528 #endif
00529 
00530 // ucvko
00531 #ifdef MOZ_EXTRA_X11CONVERTERS
00532 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToX11Johab)
00533 #endif
00534 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022KRToUnicode)
00535 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToJamoTTF)
00536 
00537 // ucvcn
00538 NS_GENERIC_FACTORY_CONSTRUCTOR(nsGB2312ToUnicodeV2)
00539 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB2312V2)
00540 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCP936ToUnicode)
00541 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToCP936)
00542 NS_GENERIC_FACTORY_CONSTRUCTOR(nsGBKToUnicode)
00543 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGBK)
00544 #ifdef MOZ_EXTRA_X11CONVERTERS
00545 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGBKNoAscii)
00546 #endif
00547 NS_GENERIC_FACTORY_CONSTRUCTOR(nsHZToUnicode)
00548 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToHZ)
00549 #ifdef MOZ_EXTRA_X11CONVERTERS
00550 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB2312GL)
00551 #endif
00552 NS_GENERIC_FACTORY_CONSTRUCTOR(nsGB18030ToUnicode)
00553 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030)
00554 #ifdef MOZ_EXTRA_X11CONVERTERS
00555 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030Font0)
00556 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030Font1)
00557 #endif
00558 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022CNToUnicode)
00559 
00560 
00561 //----------------------------------------------------------------------------
00562 // Global functions and data [declaration]
00563 
00564 #define DECODER_NAME_BASE "Unicode Decoder-"
00565 #define ENCODER_NAME_BASE "Unicode Encoder-"
00566 
00567 // ucvja
00568 const PRUint16 g_uf0201Mapping[] = {
00569 #include "jis0201.uf"
00570 };
00571 
00572 const PRUint16 g_uf0201GLMapping[] = {
00573 #include "jis0201gl.uf"
00574 };
00575 
00576 const PRUint16 g_uf0208Mapping[] = {
00577 #include "jis0208.uf"
00578 };
00579 
00580 const PRUint16 g_uf0208extMapping[] = {
00581 #include "jis0208ext.uf"
00582 };
00583 
00584 const PRUint16 g_uf0212Mapping[] = {
00585 #include "jis0212.uf"
00586 };
00587 
00588 // ucvtw2
00589 const PRUint16 g_ufCNS1MappingTable[] = {
00590 #include "cns_1.uf"
00591 };
00592 
00593 const PRUint16 g_ufCNS2MappingTable[] = {
00594 #include "cns_2.uf"
00595 };
00596 
00597 const PRUint16 g_ufCNS3MappingTable[] = {
00598 #include "cns3.uf"
00599 };
00600 
00601 const PRUint16 g_ufCNS4MappingTable[] = {
00602 #include "cns4.uf"
00603 };
00604 
00605 const PRUint16 g_ufCNS5MappingTable[] = {
00606 #include "cns5.uf"
00607 };
00608 
00609 const PRUint16 g_ufCNS6MappingTable[] = {
00610 #include "cns6.uf"
00611 };
00612 
00613 const PRUint16 g_ufCNS7MappingTable[] = {
00614 #include "cns7.uf"
00615 };
00616 
00617 const PRUint16 g_utCNS1MappingTable[] = {
00618 #include "cns_1.ut"
00619 };
00620 
00621 const PRUint16 g_utCNS2MappingTable[] = {
00622 #include "cns_2.ut"
00623 };
00624 
00625 const PRUint16 g_utCNS3MappingTable[] = {
00626 #include "cns3.ut"
00627 };
00628 
00629 const PRUint16 g_utCNS4MappingTable[] = {
00630 #include "cns4.ut"
00631 };
00632 
00633 const PRUint16 g_utCNS5MappingTable[] = {
00634 #include "cns5.ut"
00635 };
00636 
00637 const PRUint16 g_utCNS6MappingTable[] = {
00638 #include "cns6.ut"
00639 };
00640 
00641 const PRUint16 g_utCNS7MappingTable[] = {
00642 #include "cns7.ut"
00643 };
00644 
00645 const PRUint16 g_ASCIIMappingTable[] = {
00646   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
00647 };
00648 
00649 // ucvtw
00650 const PRUint16 g_ufBig5Mapping[] = {
00651 #include "big5.uf"
00652 };
00653 
00654 const PRUint16 g_utBIG5Mapping[] = {
00655 #include "big5.ut"
00656 };
00657 
00658 const PRUint16 g_ufBig5HKSCSMapping[] = {
00659 #include "hkscs.uf"
00660 };
00661 
00662 const PRUint16 g_ASCIIMapping[] = {
00663   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
00664 };
00665 
00666 const PRUint16 g_utBig5HKSCSMapping[] = {
00667 #include "hkscs.ut"
00668 };
00669 
00670 // ucvko
00671 const PRUint16 g_utKSC5601Mapping[] = {
00672 #include "u20kscgl.ut"
00673 };
00674 
00675 const PRUint16 g_ufKSC5601Mapping[] = {
00676 #include "u20kscgl.uf"
00677 };
00678 
00679 const PRUint16 g_ucvko_AsciiMapping[] = {
00680   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
00681 };
00682 
00683 const PRUint16 g_HangulNullMapping[] ={
00684   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0xAC00, 0xD7A3, 0xAC00
00685 };
00686 
00687 const PRUint16 g_ufJohabJamoMapping[] ={   
00688 #include "johabjamo.uf"
00689 };
00690 
00691 #else // MOZ_USE_NATIVE_UCONV
00692 
00693 #include "nsINativeUConvService.h"
00694 #include "nsNativeUConvService.h"
00695 
00696 NS_GENERIC_FACTORY_CONSTRUCTOR(NativeUConvService)
00697 
00698 #endif // #ifndef MOZ_USE_NATIVE_UCONV
00699 
00700 
00701 NS_IMETHODIMP
00702 nsConverterManagerDataRegister(nsIComponentManager* aCompMgr,
00703                                 nsIFile* aPath,
00704                                 const char *aLocation,
00705                                 const char *aType,
00706                                 const nsModuleComponentInfo* aInfo)
00707 {
00708   return nsCharsetConverterManager::RegisterConverterManagerData();
00709 }
00710 
00711 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCharsetConverterManager)
00712 NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextToSubURI)
00713 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ConverterService)
00714 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCharsetAlias2)
00715 NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterInputStream)
00716 NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterOutputStream)
00717 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPlatformCharset, Init)
00718 
00719 static const nsModuleComponentInfo components[] = 
00720 {
00721   { 
00722     "Charset Conversion Manager", NS_ICHARSETCONVERTERMANAGER_CID,
00723     NS_CHARSETCONVERTERMANAGER_CONTRACTID, 
00724     nsCharsetConverterManagerConstructor,
00725     nsConverterManagerDataRegister,
00726   },
00727   { 
00728     "Charset Alias Information",  NS_CHARSETALIAS_CID,
00729     NS_CHARSETALIAS_CONTRACTID, 
00730     nsCharsetAlias2Constructor 
00731   },
00732   { 
00733     "Text To Sub URI Helper", NS_TEXTTOSUBURI_CID,
00734     NS_ITEXTTOSUBURI_CONTRACTID, 
00735     nsTextToSubURIConstructor
00736   },
00737   { 
00738     "Platform Charset Information", NS_PLATFORMCHARSET_CID,
00739     NS_PLATFORMCHARSET_CONTRACTID, 
00740     nsPlatformCharsetConstructor
00741   },
00742   { "Unicode converter input stream", NS_CONVERTERINPUTSTREAM_CID,              
00743     NS_CONVERTERINPUTSTREAM_CONTRACTID, 
00744     nsConverterInputStreamConstructor 
00745   },   
00746   { "Unicode converter output stream", NS_CONVERTEROUTPUTSTREAM_CID,
00747     "@mozilla.org/intl/converter-output-stream;1",
00748     nsConverterOutputStreamConstructor 
00749   },   
00750 #ifdef MOZ_USE_NATIVE_UCONV
00751   { 
00752     "Native UConv Service", 
00753     NS_NATIVE_UCONV_SERVICE_CID,
00754     NS_NATIVE_UCONV_SERVICE_CONTRACT_ID, 
00755     NativeUConvServiceConstructor,
00756   },
00757 #else
00758   { 
00759     "Unicode Decode Helper", NS_UNICODEDECODEHELPER_CID,
00760     NS_UNICODEDECODEHELPER_CONTRACTID, 
00761     nsUnicodeDecodeHelperConstructor 
00762   },
00763   { 
00764     "Unicode Encode Helper", NS_UNICODEENCODEHELPER_CID,
00765     NS_UNICODEENCODEHELPER_CONTRACTID, 
00766     nsUnicodeEncodeHelperConstructor 
00767   },
00768   { 
00769     "Converter to/from UTF8 with charset", NS_UTF8CONVERTERSERVICE_CID,
00770     NS_UTF8CONVERTERSERVICE_CONTRACTID, 
00771     nsUTF8ConverterServiceConstructor
00772   },
00773   { 
00774     "Unicode Encoder / Decoder for Script", NS_ISCRIPTABLEUNICODECONVERTER_CID,
00775     NS_ISCRIPTABLEUNICODECONVERTER_CONTRACTID, 
00776     nsScriptableUnicodeConverterConstructor
00777   },
00778   { 
00779     "ISO-8859-1 To Unicode Converter", NS_ISO88591TOUNICODE_CID, 
00780     NS_ISO88591TOUNICODE_CONTRACTID,
00781     nsISO88591ToUnicodeConstructor,
00782     // global converter registration
00783     nsUConverterRegSelf, nsUConverterUnregSelf,
00784   },
00785   { 
00786     "windows-1252 To Unicode Converter", NS_CP1252TOUNICODE_CID, 
00787     NS_CP1252TOUNICODE_CONTRACTID,
00788     nsCP1252ToUnicodeConstructor,
00789   },
00790   { 
00791     "x-mac-roman To Unicode Converter", NS_MACROMANTOUNICODE_CID,
00792     NS_MACROMANTOUNICODE_CONTRACTID,
00793     nsMacRomanToUnicodeConstructor,
00794   },
00795   { 
00796     "UTF-8 To Unicode Converter", NS_UTF8TOUNICODE_CID,
00797     NS_UTF8TOUNICODE_CONTRACTID,
00798     nsUTF8ToUnicodeConstructor,
00799   },
00800   { 
00801     "Unicode To ISO-8859-1 Converter", NS_UNICODETOISO88591_CID,
00802     NS_UNICODETOISO88591_CONTRACTID,
00803     nsUnicodeToISO88591Constructor, 
00804   },
00805   { 
00806     "Unicode To windows-1252 Converter", NS_UNICODETOCP1252_CID,
00807     NS_UNICODETOCP1252_CONTRACTID, 
00808     nsUnicodeToCP1252Constructor, 
00809   },
00810   { 
00811     "Unicode To x-mac-roman Converter", NS_UNICODETOMACROMAN_CID,
00812     NS_UNICODETOMACROMAN_CONTRACTID, 
00813     nsUnicodeToMacRomanConstructor, 
00814   },
00815   { 
00816     "Unicode To UTF-8 Converter", NS_UNICODETOUTF8_CID,
00817     NS_UNICODETOUTF8_CONTRACTID, 
00818     nsUnicodeToUTF8Constructor, 
00819   },
00820 
00821   // ucvlatin
00822   { 
00823     DECODER_NAME_BASE "us-ascii" , NS_ASCIITOUNICODE_CID, 
00824     NS_UNICODEDECODER_CONTRACTID_BASE "us-ascii",
00825     nsAsciiToUnicodeConstructor ,
00826   },
00827   { 
00828     DECODER_NAME_BASE "ISO-8859-2" , NS_ISO88592TOUNICODE_CID, 
00829     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-2",
00830     nsISO88592ToUnicodeConstructor ,
00831   },
00832   { 
00833     DECODER_NAME_BASE "ISO-8859-3" , NS_ISO88593TOUNICODE_CID, 
00834     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-3",
00835     nsISO88593ToUnicodeConstructor ,
00836   },
00837   { 
00838     DECODER_NAME_BASE "ISO-8859-4" , NS_ISO88594TOUNICODE_CID, 
00839     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-4",
00840     nsISO88594ToUnicodeConstructor ,
00841   },
00842   { 
00843     DECODER_NAME_BASE "ISO-8859-5" , NS_ISO88595TOUNICODE_CID, 
00844     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-5",
00845     nsISO88595ToUnicodeConstructor ,
00846   },
00847   { 
00848     DECODER_NAME_BASE "ISO-8859-6" , NS_ISO88596TOUNICODE_CID, 
00849     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6",
00850     nsISO88596ToUnicodeConstructor ,
00851   },
00852   { 
00853     DECODER_NAME_BASE "ISO-8859-6-I" , NS_ISO88596ITOUNICODE_CID, 
00854     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-I",
00855     nsISO88596IToUnicodeConstructor ,
00856   },
00857   { 
00858     DECODER_NAME_BASE "ISO-8859-6-E" , NS_ISO88596ETOUNICODE_CID, 
00859     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-E",
00860     nsISO88596EToUnicodeConstructor ,
00861   },
00862   { 
00863     DECODER_NAME_BASE "ISO-8859-7" , NS_ISO88597TOUNICODE_CID, 
00864     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-7",
00865     nsISO88597ToUnicodeConstructor ,
00866   },
00867   { 
00868     DECODER_NAME_BASE "ISO-8859-8" , NS_ISO88598TOUNICODE_CID, 
00869     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8",
00870     nsISO88598ToUnicodeConstructor ,
00871   },
00872   { 
00873     DECODER_NAME_BASE "ISO-8859-8-I" , NS_ISO88598ITOUNICODE_CID, 
00874     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-I",
00875     nsISO88598IToUnicodeConstructor ,
00876   },
00877   { 
00878     DECODER_NAME_BASE "ISO-8859-8-E" , NS_ISO88598ETOUNICODE_CID, 
00879     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-E",
00880     nsISO88598EToUnicodeConstructor ,
00881   },
00882   { 
00883     DECODER_NAME_BASE "ISO-8859-9" , NS_ISO88599TOUNICODE_CID, 
00884     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-9",
00885     nsISO88599ToUnicodeConstructor ,
00886   },
00887   { 
00888     DECODER_NAME_BASE "ISO-8859-10" , NS_ISO885910TOUNICODE_CID, 
00889     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-10",
00890     nsISO885910ToUnicodeConstructor ,
00891   },
00892   { 
00893     DECODER_NAME_BASE "ISO-8859-13" , NS_ISO885913TOUNICODE_CID, 
00894     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-13",
00895     nsISO885913ToUnicodeConstructor ,
00896   },
00897   { 
00898     DECODER_NAME_BASE "ISO-8859-14" , NS_ISO885914TOUNICODE_CID, 
00899     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-14",
00900     nsISO885914ToUnicodeConstructor ,
00901   },
00902   { 
00903     DECODER_NAME_BASE "ISO-8859-15" , NS_ISO885915TOUNICODE_CID, 
00904     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-15",
00905     nsISO885915ToUnicodeConstructor ,
00906   },
00907   { 
00908     DECODER_NAME_BASE "ISO-8859-16" , NS_ISO885916TOUNICODE_CID, 
00909     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-16",
00910     nsISO885916ToUnicodeConstructor ,
00911   },
00912   { 
00913     DECODER_NAME_BASE "ISO-IR-111" , NS_ISOIR111TOUNICODE_CID, 
00914     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-IR-111",
00915     nsISOIR111ToUnicodeConstructor ,
00916   },
00917   { 
00918     DECODER_NAME_BASE "windows-1250" , NS_CP1250TOUNICODE_CID, 
00919     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1250",
00920     nsCP1250ToUnicodeConstructor ,
00921   },
00922   { 
00923     DECODER_NAME_BASE "windows-1251" , NS_CP1251TOUNICODE_CID, 
00924     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1251",
00925     nsCP1251ToUnicodeConstructor ,
00926   },
00927   { 
00928     DECODER_NAME_BASE "windows-1253" , NS_CP1253TOUNICODE_CID, 
00929     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1253",
00930     nsCP1253ToUnicodeConstructor ,
00931   },
00932   { 
00933     DECODER_NAME_BASE "windows-1254" , NS_CP1254TOUNICODE_CID, 
00934     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1254",
00935     nsCP1254ToUnicodeConstructor ,
00936   },
00937   { 
00938     DECODER_NAME_BASE "windows-1255" , NS_CP1255TOUNICODE_CID, 
00939     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1255",
00940     nsCP1255ToUnicodeConstructor ,
00941   },
00942   { 
00943     DECODER_NAME_BASE "windows-1256" , NS_CP1256TOUNICODE_CID, 
00944     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1256",
00945     nsCP1256ToUnicodeConstructor ,
00946   },
00947   { 
00948     DECODER_NAME_BASE "windows-1257" , NS_CP1257TOUNICODE_CID, 
00949     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1257",
00950     nsCP1257ToUnicodeConstructor ,
00951   },
00952   { 
00953     DECODER_NAME_BASE "windows-1258" , NS_CP1258TOUNICODE_CID, 
00954     NS_UNICODEDECODER_CONTRACTID_BASE "windows-1258",
00955     nsCP1258ToUnicodeConstructor ,
00956   },
00957   { 
00958     DECODER_NAME_BASE "TIS-620" , NS_TIS620TOUNICODE_CID, 
00959     NS_UNICODEDECODER_CONTRACTID_BASE "TIS-620",
00960     nsTIS620ToUnicodeConstructor ,
00961   },
00962   { 
00963     DECODER_NAME_BASE "ISO-8859-11" , NS_ISO885911TOUNICODE_CID, 
00964     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-11",
00965     nsISO885911ToUnicodeConstructor ,
00966   },
00967   { 
00968     DECODER_NAME_BASE "windows-874" , NS_CP874TOUNICODE_CID, 
00969     NS_UNICODEDECODER_CONTRACTID_BASE "windows-874",
00970     nsCP874ToUnicodeConstructor ,
00971   },
00972   { 
00973     DECODER_NAME_BASE "IBM866" , NS_CP866TOUNICODE_CID, 
00974     NS_UNICODEDECODER_CONTRACTID_BASE "IBM866",
00975     nsCP866ToUnicodeConstructor ,
00976   },
00977   { 
00978     DECODER_NAME_BASE "KOI8-R" , NS_KOI8RTOUNICODE_CID, 
00979     NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-R",
00980     nsKOI8RToUnicodeConstructor ,
00981   },
00982   { 
00983     DECODER_NAME_BASE "KOI8-U" , NS_KOI8UTOUNICODE_CID, 
00984     NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-U",
00985     nsKOI8UToUnicodeConstructor ,
00986   },
00987   { 
00988     DECODER_NAME_BASE "x-mac-ce" , NS_MACCETOUNICODE_CID, 
00989     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-ce",
00990     nsMacCEToUnicodeConstructor ,
00991   },
00992   { 
00993     DECODER_NAME_BASE "x-mac-greek" , NS_MACGREEKTOUNICODE_CID, 
00994     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-greek",
00995     nsMacGreekToUnicodeConstructor ,
00996   },
00997   { 
00998     DECODER_NAME_BASE "x-mac-turkish" , NS_MACTURKISHTOUNICODE_CID, 
00999     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-turkish",
01000     nsMacTurkishToUnicodeConstructor ,
01001   },
01002   { 
01003     DECODER_NAME_BASE "x-mac-croatian" , NS_MACCROATIANTOUNICODE_CID, 
01004     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-croatian",
01005     nsMacCroatianToUnicodeConstructor ,
01006   },
01007   { 
01008     DECODER_NAME_BASE "x-mac-romanian" , NS_MACROMANIANTOUNICODE_CID, 
01009     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-romanian",
01010     nsMacRomanianToUnicodeConstructor ,
01011   },
01012   { 
01013     DECODER_NAME_BASE "x-mac-cyrillic" , NS_MACCYRILLICTOUNICODE_CID, 
01014     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-cyrillic",
01015     nsMacCyrillicToUnicodeConstructor ,
01016   },
01017   { 
01018     DECODER_NAME_BASE "x-mac-ukrainian" , NS_MACUKRAINIANTOUNICODE_CID, 
01019     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-ukrainian",
01020     nsMacUkrainianToUnicodeConstructor ,
01021   },
01022   { 
01023     DECODER_NAME_BASE "x-mac-icelandic" , NS_MACICELANDICTOUNICODE_CID, 
01024     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-icelandic",
01025     nsMacIcelandicToUnicodeConstructor ,
01026   },
01027   { 
01028     DECODER_NAME_BASE "GEOSTD8" , NS_GEOSTD8TOUNICODE_CID, 
01029     NS_UNICODEDECODER_CONTRACTID_BASE "GEOSTD8",
01030     nsGEOSTD8ToUnicodeConstructor ,
01031   },
01032   { 
01033     DECODER_NAME_BASE "armscii-8" , NS_ARMSCII8TOUNICODE_CID, 
01034     NS_UNICODEDECODER_CONTRACTID_BASE "armscii-8",
01035     nsARMSCII8ToUnicodeConstructor ,
01036   },
01037   { 
01038     DECODER_NAME_BASE "x-viet-tcvn5712" , NS_TCVN5712TOUNICODE_CID, 
01039     NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-tcvn5712",
01040     nsTCVN5712ToUnicodeConstructor ,
01041   },
01042   { 
01043     DECODER_NAME_BASE "VISCII" , NS_VISCIITOUNICODE_CID, 
01044     NS_UNICODEDECODER_CONTRACTID_BASE "VISCII",
01045     nsVISCIIToUnicodeConstructor ,
01046   },
01047   { 
01048     DECODER_NAME_BASE "x-viet-vps" , NS_VPSTOUNICODE_CID, 
01049     NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-vps",
01050     nsVPSToUnicodeConstructor ,
01051   },
01052   { 
01053     DECODER_NAME_BASE "UTF-7" , NS_UTF7TOUNICODE_CID, 
01054     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-7",
01055     nsUTF7ToUnicodeConstructor ,
01056   },
01057   { 
01058     DECODER_NAME_BASE "x-imap4-modified-utf7" , NS_MUTF7TOUNICODE_CID, 
01059     NS_UNICODEDECODER_CONTRACTID_BASE "x-imap4-modified-utf7",
01060     nsMUTF7ToUnicodeConstructor ,
01061   },
01062   { 
01063     DECODER_NAME_BASE "UTF-16" , NS_UTF16TOUNICODE_CID, 
01064     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16",
01065     nsUTF16ToUnicodeConstructor ,
01066   },
01067   { 
01068     DECODER_NAME_BASE "UTF-16BE" , NS_UTF16BETOUNICODE_CID, 
01069     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16BE",
01070     nsUTF16BEToUnicodeConstructor ,
01071   },
01072   { 
01073     DECODER_NAME_BASE "UTF-16LE" , NS_UTF16LETOUNICODE_CID, 
01074     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16LE",
01075     nsUTF16LEToUnicodeConstructor ,
01076   },
01077   { 
01078     DECODER_NAME_BASE "UTF-32BE" , NS_UTF32BETOUNICODE_CID, 
01079     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-32BE",
01080     nsUTF32BEToUnicodeConstructor ,
01081   },
01082   { 
01083     DECODER_NAME_BASE "UTF-32LE" , NS_UTF32LETOUNICODE_CID, 
01084     NS_UNICODEDECODER_CONTRACTID_BASE "UTF-32LE",
01085     nsUTF32LEToUnicodeConstructor ,
01086   },
01087   { 
01088     DECODER_NAME_BASE "T.61-8bit" , NS_T61TOUNICODE_CID, 
01089     NS_UNICODEDECODER_CONTRACTID_BASE "T.61-8bit",
01090     nsT61ToUnicodeConstructor ,
01091   },
01092   { 
01093     DECODER_NAME_BASE "x-user-defined" , NS_USERDEFINEDTOUNICODE_CID, 
01094     NS_UNICODEDECODER_CONTRACTID_BASE "x-user-defined",
01095     nsUserDefinedToUnicodeConstructor ,
01096   },
01097   { 
01098     DECODER_NAME_BASE "x-mac-arabic" , NS_MACARABICTOUNICODE_CID, 
01099     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-arabic",
01100     nsMacArabicToUnicodeConstructor ,
01101   },
01102   { 
01103     DECODER_NAME_BASE "x-mac-devanagari" , NS_MACDEVANAGARITOUNICODE_CID, 
01104     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-devanagari",
01105     nsMacDevanagariToUnicodeConstructor ,
01106   },
01107   { 
01108     DECODER_NAME_BASE "x-mac-farsi" , NS_MACFARSITOUNICODE_CID, 
01109     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-farsi",
01110     nsMacFarsiToUnicodeConstructor ,
01111   },
01112   { 
01113     DECODER_NAME_BASE "x-mac-gurmukhi" , NS_MACGURMUKHITOUNICODE_CID, 
01114     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gurmukhi",
01115     nsMacGurmukhiToUnicodeConstructor ,
01116   },
01117   { 
01118     DECODER_NAME_BASE "x-mac-gujarati" , NS_MACGUJARATITOUNICODE_CID, 
01119     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gujarati",
01120     nsMacGujaratiToUnicodeConstructor ,
01121   },
01122   { 
01123     DECODER_NAME_BASE "x-mac-hebrew" , NS_MACHEBREWTOUNICODE_CID, 
01124     NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-hebrew",
01125     nsMacHebrewToUnicodeConstructor ,
01126   },
01127   { 
01128     ENCODER_NAME_BASE "us-ascii" , NS_UNICODETOASCII_CID, 
01129     NS_UNICODEENCODER_CONTRACTID_BASE "us-ascii",
01130     nsUnicodeToAsciiConstructor, 
01131   },
01132   { 
01133     ENCODER_NAME_BASE "ISO-8859-2" , NS_UNICODETOISO88592_CID, 
01134     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-2",
01135     nsUnicodeToISO88592Constructor, 
01136   },
01137   { 
01138     ENCODER_NAME_BASE "ISO-8859-3" , NS_UNICODETOISO88593_CID, 
01139     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-3",
01140     nsUnicodeToISO88593Constructor, 
01141   },
01142   { 
01143     ENCODER_NAME_BASE "ISO-8859-4" , NS_UNICODETOISO88594_CID, 
01144     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-4",
01145     nsUnicodeToISO88594Constructor, 
01146   },
01147   { 
01148     ENCODER_NAME_BASE "ISO-8859-5" , NS_UNICODETOISO88595_CID, 
01149     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-5",
01150     nsUnicodeToISO88595Constructor, 
01151   },
01152   { 
01153     ENCODER_NAME_BASE "ISO-8859-6" , NS_UNICODETOISO88596_CID, 
01154     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6",
01155     nsUnicodeToISO88596Constructor, 
01156   },
01157   { 
01158     ENCODER_NAME_BASE "ISO-8859-6-I" , NS_UNICODETOISO88596I_CID, 
01159     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-I",
01160     nsUnicodeToISO88596IConstructor, 
01161   },
01162   { 
01163     ENCODER_NAME_BASE "ISO-8859-6-E" , NS_UNICODETOISO88596E_CID, 
01164     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-E",
01165     nsUnicodeToISO88596EConstructor, 
01166   },
01167   { 
01168     ENCODER_NAME_BASE "ISO-8859-7" , NS_UNICODETOISO88597_CID, 
01169     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-7",
01170     nsUnicodeToISO88597Constructor, 
01171   },
01172   { 
01173     ENCODER_NAME_BASE "ISO-8859-8" , NS_UNICODETOISO88598_CID, 
01174     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8",
01175     nsUnicodeToISO88598Constructor, 
01176   },
01177   { 
01178     ENCODER_NAME_BASE "ISO-8859-8-I" , NS_UNICODETOISO88598I_CID, 
01179     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-I",
01180     nsUnicodeToISO88598IConstructor, 
01181   },
01182   { 
01183     ENCODER_NAME_BASE "ISO-8859-8-E" , NS_UNICODETOISO88598E_CID, 
01184     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-E",
01185     nsUnicodeToISO88598EConstructor, 
01186   },
01187   { 
01188     ENCODER_NAME_BASE "ISO-8859-9" , NS_UNICODETOISO88599_CID, 
01189     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-9",
01190     nsUnicodeToISO88599Constructor, 
01191   },
01192   { 
01193     ENCODER_NAME_BASE "ISO-8859-10" , NS_UNICODETOISO885910_CID, 
01194     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-10",
01195     nsUnicodeToISO885910Constructor, 
01196   },
01197   { 
01198     ENCODER_NAME_BASE "ISO-8859-13" , NS_UNICODETOISO885913_CID, 
01199     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-13",
01200     nsUnicodeToISO885913Constructor, 
01201   },
01202   { 
01203     ENCODER_NAME_BASE "ISO-8859-14" , NS_UNICODETOISO885914_CID, 
01204     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-14",
01205     nsUnicodeToISO885914Constructor, 
01206   },
01207   { 
01208     ENCODER_NAME_BASE "ISO-8859-15" , NS_UNICODETOISO885915_CID, 
01209     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-15",
01210     nsUnicodeToISO885915Constructor, 
01211   },
01212   { 
01213     ENCODER_NAME_BASE "ISO-8859-16" , NS_UNICODETOISO885916_CID, 
01214     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-16",
01215     nsUnicodeToISO885916Constructor, 
01216   },
01217   { 
01218     ENCODER_NAME_BASE "ISO-IR-111" , NS_UNICODETOISOIR111_CID, 
01219     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-IR-111",
01220     nsUnicodeToISOIR111Constructor, 
01221   },
01222   { 
01223     ENCODER_NAME_BASE "windows-1250" , NS_UNICODETOCP1250_CID, 
01224     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1250",
01225     nsUnicodeToCP1250Constructor, 
01226   },
01227   { 
01228     ENCODER_NAME_BASE "windows-1251" , NS_UNICODETOCP1251_CID, 
01229     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1251",
01230     nsUnicodeToCP1251Constructor, 
01231   },
01232   { 
01233     ENCODER_NAME_BASE "windows-1253" , NS_UNICODETOCP1253_CID, 
01234     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1253",
01235     nsUnicodeToCP1253Constructor, 
01236   },
01237   { 
01238     ENCODER_NAME_BASE "windows-1254" , NS_UNICODETOCP1254_CID, 
01239     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1254",
01240     nsUnicodeToCP1254Constructor, 
01241   },
01242   { 
01243     ENCODER_NAME_BASE "windows-1255" , NS_UNICODETOCP1255_CID, 
01244     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1255",
01245     nsUnicodeToCP1255Constructor, 
01246   },
01247   { 
01248     ENCODER_NAME_BASE "windows-1256" , NS_UNICODETOCP1256_CID, 
01249     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1256",
01250     nsUnicodeToCP1256Constructor, 
01251   },
01252   { 
01253     ENCODER_NAME_BASE "windows-1257" , NS_UNICODETOCP1257_CID, 
01254     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1257",
01255     nsUnicodeToCP1257Constructor, 
01256   },
01257   { 
01258     ENCODER_NAME_BASE "windows-1258" , NS_UNICODETOCP1258_CID, 
01259     NS_UNICODEENCODER_CONTRACTID_BASE "windows-1258",
01260     nsUnicodeToCP1258Constructor, 
01261   },
01262   { 
01263     ENCODER_NAME_BASE "TIS-620" , NS_UNICODETOTIS620_CID, 
01264     NS_UNICODEENCODER_CONTRACTID_BASE "TIS-620",
01265     nsUnicodeToTIS620Constructor, 
01266   },
01267   { 
01268     ENCODER_NAME_BASE "ISO-8859-11" , NS_UNICODETOISO885911_CID, 
01269     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-11",
01270     nsUnicodeToISO885911Constructor ,
01271   },
01272   { 
01273     ENCODER_NAME_BASE "windows-874" , NS_UNICODETOCP874_CID, 
01274     NS_UNICODEENCODER_CONTRACTID_BASE "windows-874",
01275     nsUnicodeToCP874Constructor ,
01276   },
01277   { 
01278     ENCODER_NAME_BASE "IBM866" , NS_UNICODETOCP866_CID, 
01279     NS_UNICODEENCODER_CONTRACTID_BASE "IBM866",
01280     nsUnicodeToCP866Constructor, 
01281   },
01282   { 
01283     ENCODER_NAME_BASE "KOI8-R" , NS_UNICODETOKOI8R_CID, 
01284     NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-R",
01285     nsUnicodeToKOI8RConstructor, 
01286   },
01287   { 
01288     ENCODER_NAME_BASE "KOI8-U" , NS_UNICODETOKOI8U_CID, 
01289     NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-U",
01290     nsUnicodeToKOI8UConstructor, 
01291   },
01292   { 
01293     ENCODER_NAME_BASE "x-mac-ce" , NS_UNICODETOMACCE_CID, 
01294     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-ce",
01295     nsUnicodeToMacCEConstructor, 
01296   },
01297   { 
01298     ENCODER_NAME_BASE "x-mac-greek" , NS_UNICODETOMACGREEK_CID, 
01299     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-greek",
01300     nsUnicodeToMacGreekConstructor, 
01301   },
01302   { 
01303     ENCODER_NAME_BASE "x-mac-turkish" , NS_UNICODETOMACTURKISH_CID, 
01304     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-turkish",
01305     nsUnicodeToMacTurkishConstructor, 
01306   },
01307   { 
01308     ENCODER_NAME_BASE "x-mac-croatian" , NS_UNICODETOMACCROATIAN_CID, 
01309     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-croatian",
01310     nsUnicodeToMacCroatianConstructor, 
01311   },
01312   { 
01313     ENCODER_NAME_BASE "x-mac-romanian" , NS_UNICODETOMACROMANIAN_CID, 
01314     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-romanian",
01315     nsUnicodeToMacRomanianConstructor, 
01316   },
01317   { 
01318     ENCODER_NAME_BASE "x-mac-cyrillic" , NS_UNICODETOMACCYRILLIC_CID, 
01319     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-cyrillic",
01320     nsUnicodeToMacCyrillicConstructor, 
01321   },
01322   { 
01323     ENCODER_NAME_BASE "x-mac-ukrainian" , NS_UNICODETOMACUKRAINIAN_CID, 
01324     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-ukrainian",
01325     nsUnicodeToMacUkrainianConstructor, 
01326   },
01327   { 
01328     ENCODER_NAME_BASE "x-mac-icelandic" , NS_UNICODETOMACICELANDIC_CID, 
01329     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-icelandic",
01330     nsUnicodeToMacIcelandicConstructor, 
01331   },
01332   { 
01333     ENCODER_NAME_BASE "GEOSTD8" , NS_UNICODETOGEOSTD8_CID, 
01334     NS_UNICODEENCODER_CONTRACTID_BASE "GEOSTD8",
01335     nsUnicodeToGEOSTD8Constructor, 
01336   },
01337   { 
01338     ENCODER_NAME_BASE "armscii-8" , NS_UNICODETOARMSCII8_CID, 
01339     NS_UNICODEENCODER_CONTRACTID_BASE "armscii-8",
01340     nsUnicodeToARMSCII8Constructor, 
01341   },
01342   { 
01343     ENCODER_NAME_BASE "x-viet-tcvn5712" , NS_UNICODETOTCVN5712_CID, 
01344     NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-tcvn5712",
01345     nsUnicodeToTCVN5712Constructor, 
01346   },
01347   { 
01348     ENCODER_NAME_BASE "VISCII" , NS_UNICODETOVISCII_CID, 
01349     NS_UNICODEENCODER_CONTRACTID_BASE "VISCII",
01350     nsUnicodeToVISCIIConstructor, 
01351   },
01352   { 
01353     ENCODER_NAME_BASE "x-viet-vps" , NS_UNICODETOVPS_CID, 
01354     NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-vps",
01355     nsUnicodeToVPSConstructor, 
01356   },
01357   { 
01358     ENCODER_NAME_BASE "UTF-7" , NS_UNICODETOUTF7_CID, 
01359     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-7",
01360     nsUnicodeToUTF7Constructor, 
01361   },
01362   { 
01363     ENCODER_NAME_BASE "x-imap4-modified-utf7" , NS_UNICODETOMUTF7_CID, 
01364     NS_UNICODEENCODER_CONTRACTID_BASE "x-imap4-modified-utf7",
01365     nsUnicodeToMUTF7Constructor, 
01366   },
01367   { 
01368     ENCODER_NAME_BASE "UTF-16BE" , NS_UNICODETOUTF16BE_CID, 
01369     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16BE",
01370     nsUnicodeToUTF16BEConstructor, 
01371   },
01372   { 
01373     ENCODER_NAME_BASE "UTF-16LE" , NS_UNICODETOUTF16LE_CID, 
01374     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16LE",
01375     nsUnicodeToUTF16LEConstructor, 
01376   },
01377   { 
01378     ENCODER_NAME_BASE "UTF-16" , NS_UNICODETOUTF16_CID, 
01379     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16",
01380     nsUnicodeToUTF16Constructor, 
01381   },
01382   { 
01383     ENCODER_NAME_BASE "UTF-32BE" , NS_UNICODETOUTF32BE_CID, 
01384     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-32BE",
01385     nsUnicodeToUTF32BEConstructor, 
01386   },
01387   { 
01388     ENCODER_NAME_BASE "UTF-32LE" , NS_UNICODETOUTF32LE_CID, 
01389     NS_UNICODEENCODER_CONTRACTID_BASE "UTF-32LE",
01390     nsUnicodeToUTF32LEConstructor, 
01391   },
01392     { 
01393     ENCODER_NAME_BASE "T.61-8bit" , NS_UNICODETOT61_CID, 
01394     NS_UNICODEENCODER_CONTRACTID_BASE "T.61-8bit",
01395     nsUnicodeToT61Constructor, 
01396   },
01397   { 
01398     ENCODER_NAME_BASE "x-user-defined" , NS_UNICODETOUSERDEFINED_CID, 
01399     NS_UNICODEENCODER_CONTRACTID_BASE "x-user-defined",
01400     nsUnicodeToUserDefinedConstructor, 
01401   },
01402   { 
01403     ENCODER_NAME_BASE "Adobe-Symbol-Encoding" , NS_UNICODETOSYMBOL_CID, 
01404     NS_UNICODEENCODER_CONTRACTID_BASE "Adobe-Symbol-Encoding",
01405     nsUnicodeToSymbolConstructor, 
01406   },
01407   { 
01408     ENCODER_NAME_BASE "x-zapf-dingbats" , NS_UNICODETOZAPFDINGBATS_CID, 
01409     NS_UNICODEENCODER_CONTRACTID_BASE "x-zapf-dingbats",
01410     nsUnicodeToZapfDingbatConstructor, 
01411   },
01412   { 
01413     ENCODER_NAME_BASE "x-adobe-euro", NS_UNICODETOADOBEEURO_CID,
01414     NS_UNICODEENCODER_CONTRACTID_BASE "x-adobe-euro",
01415     nsUnicodeToAdobeEuroConstructor, 
01416   },
01417   { 
01418     ENCODER_NAME_BASE "x-mac-arabic" , NS_UNICODETOMACARABIC_CID, 
01419     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-arabic",
01420     nsUnicodeToMacArabicConstructor, 
01421   },
01422   { 
01423     ENCODER_NAME_BASE "x-mac-devanagari" , NS_UNICODETOMACDEVANAGARI_CID, 
01424     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-devanagari",
01425     nsUnicodeToMacDevanagariConstructor, 
01426   },
01427   { 
01428     ENCODER_NAME_BASE "x-mac-farsi" , NS_UNICODETOMACFARSI_CID, 
01429     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-farsi",
01430     nsUnicodeToMacFarsiConstructor, 
01431   },
01432   { 
01433     ENCODER_NAME_BASE "x-mac-gurmukhi" , NS_UNICODETOMACGURMUKHI_CID, 
01434     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gurmukhi",
01435     nsUnicodeToMacGurmukhiConstructor, 
01436   },
01437   { 
01438     ENCODER_NAME_BASE "x-mac-gujarati" , NS_UNICODETOMACGUJARATI_CID, 
01439     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gujarati",
01440     nsUnicodeToMacGujaratiConstructor, 
01441   },
01442   { 
01443     ENCODER_NAME_BASE "x-mac-hebrew" , NS_UNICODETOMACHEBREW_CID, 
01444     NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-hebrew",
01445     nsUnicodeToMacHebrewConstructor, 
01446   },
01447   { 
01448     ENCODER_NAME_BASE "x-tscii" , NS_UNICODETOTSCII_CID,
01449     NS_UNICODEENCODER_CONTRACTID_BASE "x-tscii",
01450     nsUnicodeToTSCIIConstructor, 
01451   },
01452   { 
01453     ENCODER_NAME_BASE "x-tamilttf-0" , NS_UNICODETOTAMILTTF_CID,
01454     NS_UNICODEENCODER_CONTRACTID_BASE "x-tamilttf-0",
01455     nsUnicodeToTamilTTFConstructor, 
01456   },
01457 #ifdef MOZ_EXTRA_X11CONVERTERS
01458   { 
01459     ENCODER_NAME_BASE "x-iso-8859-6-8-x" , NS_UNICODETOLANGBOXARABIC_CID, 
01460     NS_UNICODEENCODER_CONTRACTID_BASE "x-iso-8859-6-8-x",
01461     nsUnicodeToLangBoxArabic8Constructor, 
01462   },
01463   { 
01464     ENCODER_NAME_BASE "x-iso-8859-6-16" , NS_UNICODETOLANGBOXARABIC16_CID, 
01465     NS_UNICODEENCODER_CONTRACTID_BASE "x-iso-8859-6-16",
01466     nsUnicodeToLangBoxArabic16Constructor, 
01467   },
01468 #endif // MOZ_EXTRA_X11CONVERTERS
01469   // ucvibm
01470   { 
01471     DECODER_NAME_BASE "IBM850" , NS_CP850TOUNICODE_CID, 
01472     NS_UNICODEDECODER_CONTRACTID_BASE "IBM850",
01473     nsCP850ToUnicodeConstructor ,
01474   },
01475   { 
01476     DECODER_NAME_BASE "IBM852" , NS_CP852TOUNICODE_CID, 
01477     NS_UNICODEDECODER_CONTRACTID_BASE "IBM852",
01478     nsCP852ToUnicodeConstructor ,
01479   },
01480   { 
01481     DECODER_NAME_BASE "IBM855" , NS_CP855TOUNICODE_CID, 
01482     NS_UNICODEDECODER_CONTRACTID_BASE "IBM855",
01483     nsCP855ToUnicodeConstructor ,
01484   },
01485   { 
01486     DECODER_NAME_BASE "IBM857" , NS_CP857TOUNICODE_CID, 
01487     NS_UNICODEDECODER_CONTRACTID_BASE "IBM857",
01488     nsCP857ToUnicodeConstructor ,
01489   },
01490   { 
01491     DECODER_NAME_BASE "IBM862" , NS_CP862TOUNICODE_CID, 
01492     NS_UNICODEDECODER_CONTRACTID_BASE "IBM862",
01493     nsCP862ToUnicodeConstructor ,
01494   },
01495   { 
01496     DECODER_NAME_BASE "IBM864" , NS_CP864TOUNICODE_CID, 
01497     NS_UNICODEDECODER_CONTRACTID_BASE "IBM864",
01498     nsCP864ToUnicodeConstructor ,
01499   },
01500   { 
01501     DECODER_NAME_BASE "IBM864i" , NS_CP864ITOUNICODE_CID, 
01502     NS_UNICODEDECODER_CONTRACTID_BASE "IBM864i",
01503     nsCP864iToUnicodeConstructor ,
01504   },
01505 #ifdef MOZ_EXTRA_X11CONVERTERS
01506   {
01507     DECODER_NAME_BASE "x-IBM1046" , NS_CP1046TOUNICODE_CID,
01508     NS_UNICODEDECODER_CONTRACTID_BASE "x-IBM1046",
01509     nsCP1046ToUnicodeConstructor ,
01510   },
01511 #endif
01512 #ifdef XP_OS2
01513   {
01514     DECODER_NAME_BASE "IBM869" , NS_CP869TOUNICODE_CID,
01515     NS_UNICODEDECODER_CONTRACTID_BASE "IBM869",
01516     nsCP869ToUnicodeConstructor ,
01517   },
01518 #endif
01519   { 
01520     ENCODER_NAME_BASE "IBM850" , NS_UNICODETOCP850_CID, 
01521     NS_UNICODEENCODER_CONTRACTID_BASE "IBM850",
01522     nsUnicodeToCP850Constructor, 
01523   },
01524   { 
01525     ENCODER_NAME_BASE "IBM852" , NS_UNICODETOCP852_CID, 
01526     NS_UNICODEENCODER_CONTRACTID_BASE "IBM852",
01527     nsUnicodeToCP852Constructor, 
01528   },
01529   { 
01530     ENCODER_NAME_BASE "IBM855" , NS_UNICODETOCP855_CID, 
01531     NS_UNICODEENCODER_CONTRACTID_BASE "IBM855",
01532     nsUnicodeToCP855Constructor, 
01533   },
01534   { 
01535     ENCODER_NAME_BASE "IBM857" , NS_UNICODETOCP857_CID, 
01536     NS_UNICODEENCODER_CONTRACTID_BASE "IBM857",
01537     nsUnicodeToCP857Constructor, 
01538   },
01539   { 
01540     ENCODER_NAME_BASE "IBM862" , NS_UNICODETOCP862_CID, 
01541     NS_UNICODEENCODER_CONTRACTID_BASE "IBM862",
01542     nsUnicodeToCP862Constructor, 
01543   },
01544   { 
01545     ENCODER_NAME_BASE "IBM864" , NS_UNICODETOCP864_CID, 
01546     NS_UNICODEENCODER_CONTRACTID_BASE "IBM864",
01547     nsUnicodeToCP864Constructor, 
01548   },
01549   { 
01550     ENCODER_NAME_BASE "IBM864i" , NS_UNICODETOCP864I_CID, 
01551     NS_UNICODEENCODER_CONTRACTID_BASE "IBM864i",
01552     nsUnicodeToCP864iConstructor, 
01553   },
01554 #ifdef MOZ_EXTRA_X11CONVERTERS
01555   {
01556     ENCODER_NAME_BASE "x-IBM1046" , NS_UNICODETOCP1046_CID,
01557     NS_UNICODEENCODER_CONTRACTID_BASE "x-IBM1046",
01558     nsUnicodeToCP1046Constructor,
01559   },
01560 #endif
01561 #ifdef XP_OS2
01562   {
01563     ENCODER_NAME_BASE "IBM869" , NS_UNICODETOCP869_CID,
01564     NS_UNICODEENCODER_CONTRACTID_BASE "IBM869",
01565     nsUnicodeToCP869Constructor,
01566   },
01567 #endif
01568     // ucvja
01569   { 
01570     DECODER_NAME_BASE "Shift_JIS" , NS_SJISTOUNICODE_CID, 
01571     NS_UNICODEDECODER_CONTRACTID_BASE "Shift_JIS",
01572     nsShiftJISToUnicodeConstructor ,
01573   },
01574   { 
01575     DECODER_NAME_BASE "EUC-JP" , NS_EUCJPTOUNICODE_CID, 
01576     NS_UNICODEDECODER_CONTRACTID_BASE "EUC-JP",
01577     nsEUCJPToUnicodeV2Constructor ,
01578   },
01579   { 
01580     DECODER_NAME_BASE "ISO-2022-JP" , NS_ISO2022JPTOUNICODE_CID, 
01581     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-JP",
01582     nsISO2022JPToUnicodeV2Constructor ,
01583   },
01584   { 
01585     ENCODER_NAME_BASE "Shift_JIS" , NS_UNICODETOSJIS_CID, 
01586     NS_UNICODEENCODER_CONTRACTID_BASE "Shift_JIS",
01587     nsUnicodeToSJISConstructor, 
01588   },
01589   { 
01590     ENCODER_NAME_BASE "EUC-JP" , NS_UNICODETOEUCJP_CID, 
01591     NS_UNICODEENCODER_CONTRACTID_BASE "EUC-JP",
01592     nsUnicodeToEUCJPConstructor, 
01593   },
01594   { 
01595     ENCODER_NAME_BASE "ISO-2022-JP" , NS_UNICODETOISO2022JP_CID, 
01596     NS_UNICODEENCODER_CONTRACTID_BASE "ISO-2022-JP",
01597     nsUnicodeToISO2022JPConstructor, 
01598   },
01599   { 
01600     ENCODER_NAME_BASE "jis_0201" , NS_UNICODETOJISX0201_CID, 
01601     NS_UNICODEENCODER_CONTRACTID_BASE "jis_0201",
01602     nsUnicodeToJISx0201Constructor, 
01603   },
01604 #ifdef MOZ_EXTRA_X11CONVERTERS
01605   { 
01606     ENCODER_NAME_BASE "jis_0208-1983" , NS_UNICODETOJISX0208_CID, 
01607     NS_UNICODEENCODER_CONTRACTID_BASE "jis_0208-1983",
01608     nsUnicodeToJISx0208Constructor, 
01609   },
01610   { 
01611     ENCODER_NAME_BASE "jis_0212-1990" , NS_UNICODETOJISX0212_CID, 
01612     NS_UNICODEENCODER_CONTRACTID_BASE "jis_0212-1990",
01613     nsUnicodeToJISx0212Constructor, 
01614   },
01615 #endif
01616 
01617   // ucvtw2
01618   { 
01619     DECODER_NAME_BASE "x-euc-tw" , NS_EUCTWTOUNICODE_CID, 
01620     NS_UNICODEDECODER_CONTRACTID_BASE "x-euc-tw",
01621     nsEUCTWToUnicodeConstructor,
01622   },
01623   { 
01624     ENCODER_NAME_BASE "x-euc-tw" , NS_UNICODETOEUCTW_CID, 
01625     NS_UNICODEENCODER_CONTRACTID_BASE "x-euc-tw",
01626     nsUnicodeToEUCTWConstructor,
01627   },
01628 #ifdef MOZ_EXTRA_X11CONVERTERS
01629   { 
01630     ENCODER_NAME_BASE "x-cns-11643-1" , NS_UNICODETOCNS11643P1_CID, 
01631     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-1",
01632     nsUnicodeToCNS11643p1Constructor,
01633   },
01634   { 
01635     ENCODER_NAME_BASE "x-cns-11643-2" , NS_UNICODETOCNS11643P2_CID, 
01636     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-2",
01637     nsUnicodeToCNS11643p2Constructor,
01638   },
01639   { 
01640     ENCODER_NAME_BASE "x-cns-11643-3" , NS_UNICODETOCNS11643P3_CID, 
01641     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-3",
01642     nsUnicodeToCNS11643p3Constructor,
01643   },
01644   { 
01645     ENCODER_NAME_BASE "x-cns-11643-4" , NS_UNICODETOCNS11643P4_CID, 
01646     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-4",
01647     nsUnicodeToCNS11643p4Constructor,
01648   },
01649   { 
01650     ENCODER_NAME_BASE "x-cns-11643-5" , NS_UNICODETOCNS11643P5_CID, 
01651     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-5",
01652     nsUnicodeToCNS11643p5Constructor,
01653   },
01654   { 
01655     ENCODER_NAME_BASE "x-cns-11643-6" , NS_UNICODETOCNS11643P6_CID, 
01656     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-6",
01657     nsUnicodeToCNS11643p6Constructor,
01658   },
01659   { 
01660     ENCODER_NAME_BASE "x-cns-11643-7" , NS_UNICODETOCNS11643P7_CID, 
01661     NS_UNICODEENCODER_CONTRACTID_BASE "x-cns-11643-7",
01662     nsUnicodeToCNS11643p7Constructor,
01663   },
01664 #endif
01665 
01666   // ucvtw
01667   { 
01668     ENCODER_NAME_BASE "Big5" , NS_UNICODETOBIG5_CID, 
01669     NS_UNICODEENCODER_CONTRACTID_BASE "Big5",
01670     nsUnicodeToBIG5Constructor,
01671   },
01672 #ifdef MOZ_EXTRA_X11CONVERTERS
01673   { 
01674     ENCODER_NAME_BASE "x-x-big5" , NS_UNICODETOBIG5NOASCII_CID, 
01675     NS_UNICODEENCODER_CONTRACTID_BASE "x-x-big5",
01676     nsUnicodeToBIG5NoAsciiConstructor,
01677   },
01678 #endif
01679   { 
01680     DECODER_NAME_BASE "Big5" , NS_BIG5TOUNICODE_CID, 
01681     NS_UNICODEDECODER_CONTRACTID_BASE "Big5",
01682     nsBIG5ToUnicodeConstructor ,
01683   },
01684   {
01685     ENCODER_NAME_BASE "Big5-HKSCS" , NS_UNICODETOBIG5HKSCS_CID,
01686     NS_UNICODEENCODER_CONTRACTID_BASE "Big5-HKSCS",
01687     nsUnicodeToBIG5HKSCSConstructor,
01688   },
01689   {
01690     ENCODER_NAME_BASE "hkscs-1" , NS_UNICODETOHKSCS_CID,
01691     NS_UNICODEENCODER_CONTRACTID_BASE "hkscs-1",
01692     nsUnicodeToHKSCSConstructor,
01693   },
01694   {
01695     DECODER_NAME_BASE "Big5-HKSCS" , NS_BIG5HKSCSTOUNICODE_CID,
01696     NS_UNICODEDECODER_CONTRACTID_BASE "Big5-HKSCS",
01697     nsBIG5HKSCSToUnicodeConstructor ,
01698   },
01699 
01700   // ucvko
01701   { 
01702     DECODER_NAME_BASE "EUC-KR" , NS_EUCKRTOUNICODE_CID, 
01703     NS_UNICODEDECODER_CONTRACTID_BASE "EUC-KR",
01704     nsEUCKRToUnicodeConstructor ,
01705   },
01706   { 
01707     ENCODER_NAME_BASE "EUC-KR" , NS_UNICODETOEUCKR_CID, 
01708     NS_UNICODEENCODER_CONTRACTID_BASE "EUC-KR",
01709     nsUnicodeToEUCKRConstructor, 
01710   },
01711   { 
01712     DECODER_NAME_BASE "x-johab" , NS_JOHABTOUNICODE_CID, 
01713     NS_UNICODEDECODER_CONTRACTID_BASE "x-johab",
01714     nsJohabToUnicodeConstructor ,
01715   },
01716   { 
01717     ENCODER_NAME_BASE "x-johab" , NS_UNICODETOJOHAB_CID, 
01718     NS_UNICODEENCODER_CONTRACTID_BASE "x-johab",
01719     nsUnicodeToJohabConstructor,
01720   },
01721 #ifdef MOZ_EXTRA_X11CONVERTERS
01722   { 
01723     ENCODER_NAME_BASE "ks_c_5601-1987" , NS_UNICODETOKSC5601_CID, 
01724     NS_UNICODEENCODER_CONTRACTID_BASE "ks_c_5601-1987",
01725     nsUnicodeToKSC5601Constructor,
01726   },
01727   { 
01728     ENCODER_NAME_BASE "x-x11johab" , NS_UNICODETOX11JOHAB_CID, 
01729     NS_UNICODEENCODER_CONTRACTID_BASE "x-x11johab",
01730     nsUnicodeToX11JohabConstructor,
01731   },
01732   { 
01733     ENCODER_NAME_BASE "x-johab-noascii", NS_UNICODETOJOHABNOASCII_CID, 
01734     NS_UNICODEENCODER_CONTRACTID_BASE "x-johab-noascii",
01735     nsUnicodeToJohabNoAsciiConstructor,
01736   },
01737 #endif
01738   { 
01739     DECODER_NAME_BASE "x-windows-949" , NS_CP949TOUNICODE_CID, 
01740     NS_UNICODEDECODER_CONTRACTID_BASE "x-windows-949",
01741     nsCP949ToUnicodeConstructor ,
01742   },
01743   { 
01744     ENCODER_NAME_BASE "x-windows-949" , NS_UNICODETOCP949_CID, 
01745     NS_UNICODEENCODER_CONTRACTID_BASE "x-windows-949",
01746     nsUnicodeToCP949Constructor,
01747   },
01748   { 
01749     DECODER_NAME_BASE "ISO-2022-KR" , NS_ISO2022KRTOUNICODE_CID, 
01750     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-KR",
01751     nsISO2022KRToUnicodeConstructor ,
01752   },
01753   { 
01754     ENCODER_NAME_BASE "x-koreanjamo-0" , NS_UNICODETOJAMOTTF_CID, 
01755     NS_UNICODEENCODER_CONTRACTID_BASE "x-koreanjamo-0",
01756     nsUnicodeToJamoTTFConstructor,
01757   },
01758   // ucvcn
01759   { 
01760     DECODER_NAME_BASE "GB2312" , NS_GB2312TOUNICODE_CID, 
01761     NS_UNICODEDECODER_CONTRACTID_BASE "GB2312",
01762     nsGB2312ToUnicodeV2Constructor ,
01763   },
01764   { 
01765     ENCODER_NAME_BASE "GB2312" , NS_UNICODETOGB2312_CID, 
01766     NS_UNICODEENCODER_CONTRACTID_BASE "GB2312",
01767     nsUnicodeToGB2312V2Constructor, 
01768   },
01769   { 
01770     DECODER_NAME_BASE "windows-936" , NS_CP936TOUNICODE_CID, 
01771     NS_UNICODEDECODER_CONTRACTID_BASE "windows-936",
01772     nsCP936ToUnicodeConstructor ,
01773   },
01774   { 
01775     ENCODER_NAME_BASE "windows-936" , NS_UNICODETOCP936_CID, 
01776     NS_UNICODEENCODER_CONTRACTID_BASE "windows-936",
01777     nsUnicodeToCP936Constructor, 
01778   },
01779   { 
01780     DECODER_NAME_BASE "x-gbk" , NS_GBKTOUNICODE_CID, 
01781     NS_UNICODEDECODER_CONTRACTID_BASE "x-gbk",
01782     nsGBKToUnicodeConstructor ,
01783   },
01784   { 
01785     ENCODER_NAME_BASE "x-gbk" , NS_UNICODETOGBK_CID, 
01786     NS_UNICODEENCODER_CONTRACTID_BASE "x-gbk",
01787     nsUnicodeToGBKConstructor, 
01788   },  
01789 #ifdef MOZ_EXTRA_X11CONVERTERS
01790   { 
01791     ENCODER_NAME_BASE "x-gbk-noascii" , NS_UNICODETOGBKNOASCII_CID, 
01792     NS_UNICODEENCODER_CONTRACTID_BASE "x-gbk-noascii",
01793     nsUnicodeToGBKNoAsciiConstructor, 
01794   },  
01795 #endif
01796   { 
01797     DECODER_NAME_BASE "HZ-GB-2312" , NS_HZTOUNICODE_CID, 
01798     NS_UNICODEDECODER_CONTRACTID_BASE "HZ-GB-2312",
01799     nsHZToUnicodeConstructor ,
01800   },  
01801   { 
01802     ENCODER_NAME_BASE "HZ-GB-2312" , NS_UNICODETOHZ_CID, 
01803     NS_UNICODEENCODER_CONTRACTID_BASE "HZ-GB-2312",
01804     nsUnicodeToHZConstructor, 
01805   },  
01806 #ifdef MOZ_EXTRA_X11CONVERTERS
01807   { 
01808     ENCODER_NAME_BASE "gb_2312-80" , NS_UNICODETOGB2312GL_CID, 
01809     NS_UNICODEENCODER_CONTRACTID_BASE "gb_2312-80",
01810     nsUnicodeToGB2312GLConstructor, 
01811   },
01812 #endif
01813   { 
01814     DECODER_NAME_BASE "gb18030" , NS_GB18030TOUNICODE_CID, 
01815     NS_UNICODEDECODER_CONTRACTID_BASE "gb18030",
01816     nsGB18030ToUnicodeConstructor ,
01817   },  
01818 #ifdef MOZ_EXTRA_X11CONVERTERS
01819   { 
01820     ENCODER_NAME_BASE "gb18030.2000-0" , NS_UNICODETOGB18030Font0_CID, 
01821     NS_UNICODEENCODER_CONTRACTID_BASE "gb18030.2000-0",
01822     nsUnicodeToGB18030Font0Constructor, 
01823   },  
01824   { 
01825     ENCODER_NAME_BASE "gb18030.2000-1" , NS_UNICODETOGB18030Font1_CID, 
01826     NS_UNICODEENCODER_CONTRACTID_BASE "gb18030.2000-1",
01827     nsUnicodeToGB18030Font1Constructor, 
01828   },  
01829 #endif
01830   { 
01831     ENCODER_NAME_BASE "gb18030" , NS_UNICODETOGB18030_CID, 
01832     NS_UNICODEENCODER_CONTRACTID_BASE "gb18030",
01833     nsUnicodeToGB18030Constructor, 
01834   },
01835   {
01836     DECODER_NAME_BASE "ISO-2022-CN" , NS_ISO2022CNTOUNICODE_CID,
01837     NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-CN",
01838     nsISO2022CNToUnicodeConstructor,
01839   },
01840 #endif // MOZ_USE_NATIVE_UCONV
01841 };
01842 
01843 NS_IMPL_NSGETMODULE(nsUConvModule, components)
01844