| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> | 3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 registrar("iso_8859-8", "ISO-8859-8"); | 205 registrar("iso_8859-8", "ISO-8859-8"); |
| 206 registrar("iso_8859-9", "windows-1254"); | 206 registrar("iso_8859-9", "windows-1254"); |
| 207 registrar("iso_8859-15", "ISO-8859-15"); | 207 registrar("iso_8859-15", "ISO-8859-15"); |
| 208 registrar("koi8_r", "KOI8-R"); | 208 registrar("koi8_r", "KOI8-R"); |
| 209 registrar("x-cp1253", "windows-1253"); | 209 registrar("x-cp1253", "windows-1253"); |
| 210 registrar("x-cp1254", "windows-1254"); | 210 registrar("x-cp1254", "windows-1254"); |
| 211 registrar("x-cp1255", "windows-1255"); | 211 registrar("x-cp1255", "windows-1255"); |
| 212 registrar("x-cp1256", "windows-1256"); | 212 registrar("x-cp1256", "windows-1256"); |
| 213 registrar("x-cp1257", "windows-1257"); | 213 registrar("x-cp1257", "windows-1257"); |
| 214 registrar("x-cp1258", "windows-1258"); | 214 registrar("x-cp1258", "windows-1258"); |
| 215 |
| 216 // Standard labels for UTF-16. |
| 217 registrar("UTF-16", "utf-16le"); |
| 218 // Non-standard labels for UTF-16. |
| 219 registrar("ISO-10646-UCS-2", "utf-16le"); |
| 220 registrar("UCS-2", "utf-16le"); |
| 221 registrar("Unicode", "utf-16le"); |
| 222 registrar("csUnicode", "utf-16le"); |
| 223 registrar("unicodeFEFF", "utf-16le"); |
| 224 registrar("unicodeFFFE", "utf-16be"); |
| 215 } | 225 } |
| 216 | 226 |
| 217 void TextCodecICU::registerCodecs(TextCodecRegistrar registrar) | 227 void TextCodecICU::registerCodecs(TextCodecRegistrar registrar) |
| 218 { | 228 { |
| 219 // See comment above in registerEncodingNames. | 229 // See comment above in registerEncodingNames. |
| 220 registrar("ISO-8859-8-I", create, 0); | 230 registrar("ISO-8859-8-I", create, 0); |
| 221 | 231 |
| 222 int32_t numEncodings = ucnv_countAvailable(); | 232 int32_t numEncodings = ucnv_countAvailable(); |
| 223 for (int32_t i = 0; i < numEncodings; ++i) { | 233 for (int32_t i = 0; i < numEncodings; ++i) { |
| 224 const char* name = ucnv_getAvailableName(i); | 234 const char* name = ucnv_getAvailableName(i); |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 | 490 |
| 481 CString TextCodecICU::encodeInternal(const TextCodecInput& input, UnencodableHan
dling handling) | 491 CString TextCodecICU::encodeInternal(const TextCodecInput& input, UnencodableHan
dling handling) |
| 482 { | 492 { |
| 483 const UChar* source = input.begin(); | 493 const UChar* source = input.begin(); |
| 484 const UChar* end = input.end(); | 494 const UChar* end = input.end(); |
| 485 | 495 |
| 486 UErrorCode err = U_ZERO_ERROR; | 496 UErrorCode err = U_ZERO_ERROR; |
| 487 | 497 |
| 488 switch (handling) { | 498 switch (handling) { |
| 489 case QuestionMarksForUnencodables: | 499 case QuestionMarksForUnencodables: |
| 490 ucnv_setSubstChars(m_converterICU, "?", 1, &err); | 500 if (!m_encoding.isNonByteBasedEncoding()) |
| 501 ucnv_setSubstChars(m_converterICU, "?", 1, &err); |
| 491 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkCallb
ackSubstitute : UCNV_FROM_U_CALLBACK_SUBSTITUTE, 0, 0, 0, &err); | 502 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkCallb
ackSubstitute : UCNV_FROM_U_CALLBACK_SUBSTITUTE, 0, 0, 0, &err); |
| 492 break; | 503 break; |
| 493 case EntitiesForUnencodables: | 504 case EntitiesForUnencodables: |
| 494 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkCallb
ackEscape : UCNV_FROM_U_CALLBACK_ESCAPE, UCNV_ESCAPE_XML_DEC, 0, 0, &err); | 505 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkCallb
ackEscape : UCNV_FROM_U_CALLBACK_ESCAPE, UCNV_ESCAPE_XML_DEC, 0, 0, &err); |
| 495 break; | 506 break; |
| 496 case URLEncodedEntitiesForUnencodables: | 507 case URLEncodedEntitiesForUnencodables: |
| 497 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkUrlEs
capedEntityCallack : urlEscapedEntityCallback, 0, 0, 0, &err); | 508 ucnv_setFromUCallBack(m_converterICU, m_needsGBKFallbacks ? gbkUrlEs
capedEntityCallack : urlEscapedEntityCallback, 0, 0, 0, &err); |
| 498 break; | 509 break; |
| 499 } | 510 } |
| 500 | 511 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 { | 549 { |
| 539 return encodeCommon(characters, length, handling); | 550 return encodeCommon(characters, length, handling); |
| 540 } | 551 } |
| 541 | 552 |
| 542 CString TextCodecICU::encode(const LChar* characters, size_t length, Unencodable
Handling handling) | 553 CString TextCodecICU::encode(const LChar* characters, size_t length, Unencodable
Handling handling) |
| 543 { | 554 { |
| 544 return encodeCommon(characters, length, handling); | 555 return encodeCommon(characters, length, handling); |
| 545 } | 556 } |
| 546 | 557 |
| 547 } // namespace WTF | 558 } // namespace WTF |
| OLD | NEW |