← All changes
|
vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/CodePage.php
+81
-131
3.1.2
→
3.0.10
View file →
| @@ -1,10 +1,9 @@ | ||
| 1 | 1 | <?php |
| 2 | - | |
| 3 | 2 | /** |
| 4 | - * PHPExcel_Shared_CodePage | |
| 3 | + * PHPExcel | |
| 5 | 4 | * |
| 6 | - * Copyright (c) 2006 - 2015 PHPExcel | |
| 5 | + * Copyright (c) 2006 - 2014 PHPExcel | |
| 7 | 6 | * |
| 8 | 7 | * This library is free software; you can redistribute it and/or |
| 9 | 8 | * modify it under the terms of the GNU Lesser General Public |
| 10 | 9 | * License as published by the Free Software Foundation; either |
| @@ -20,137 +19,88 @@ | ||
| 20 | 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 21 | 20 | * |
| 22 | 21 | * @category PHPExcel |
| 23 | 22 | * @package PHPExcel_Shared |
| 24 | - * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) | |
| 25 | - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL | |
| 23 | + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) | |
| 24 | + * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL | |
| 26 | 25 | * @version ##VERSION##, ##DATE## |
| 27 | 26 | */ |
| 27 | + | |
| 28 | + | |
| 29 | +/** | |
| 30 | + * PHPExcel_Shared_CodePage | |
| 31 | + * | |
| 32 | + * @category PHPExcel | |
| 33 | + * @package PHPExcel_Shared | |
| 34 | + * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) | |
| 35 | + */ | |
| 28 | 36 | class PHPExcel_Shared_CodePage |
| 29 | 37 | { |
| 30 | - /** | |
| 31 | - * Convert Microsoft Code Page Identifier to Code Page Name which iconv | |
| 32 | - * and mbstring understands | |
| 33 | - * | |
| 34 | - * @param integer $codePage Microsoft Code Page Indentifier | |
| 35 | - * @return string Code Page Name | |
| 36 | - * @throws PHPExcel_Exception | |
| 37 | - */ | |
| 38 | - public static function NumberToName($codePage = 1252) | |
| 39 | - { | |
| 40 | - switch ($codePage) { | |
| 41 | - case 367: | |
| 42 | - return 'ASCII'; // ASCII | |
| 43 | - case 437: | |
| 44 | - return 'CP437'; // OEM US | |
| 45 | - case 720: | |
| 46 | - throw new PHPExcel_Exception('Code page 720 not supported.'); // OEM Arabic | |
| 47 | - case 737: | |
| 48 | - return 'CP737'; // OEM Greek | |
| 49 | - case 775: | |
| 50 | - return 'CP775'; // OEM Baltic | |
| 51 | - case 850: | |
| 52 | - return 'CP850'; // OEM Latin I | |
| 53 | - case 852: | |
| 54 | - return 'CP852'; // OEM Latin II (Central European) | |
| 55 | - case 855: | |
| 56 | - return 'CP855'; // OEM Cyrillic | |
| 57 | - case 857: | |
| 58 | - return 'CP857'; // OEM Turkish | |
| 59 | - case 858: | |
| 60 | - return 'CP858'; // OEM Multilingual Latin I with Euro | |
| 61 | - case 860: | |
| 62 | - return 'CP860'; // OEM Portugese | |
| 63 | - case 861: | |
| 64 | - return 'CP861'; // OEM Icelandic | |
| 65 | - case 862: | |
| 66 | - return 'CP862'; // OEM Hebrew | |
| 67 | - case 863: | |
| 68 | - return 'CP863'; // OEM Canadian (French) | |
| 69 | - case 864: | |
| 70 | - return 'CP864'; // OEM Arabic | |
| 71 | - case 865: | |
| 72 | - return 'CP865'; // OEM Nordic | |
| 73 | - case 866: | |
| 74 | - return 'CP866'; // OEM Cyrillic (Russian) | |
| 75 | - case 869: | |
| 76 | - return 'CP869'; // OEM Greek (Modern) | |
| 77 | - case 874: | |
| 78 | - return 'CP874'; // ANSI Thai | |
| 79 | - case 932: | |
| 80 | - return 'CP932'; // ANSI Japanese Shift-JIS | |
| 81 | - case 936: | |
| 82 | - return 'CP936'; // ANSI Chinese Simplified GBK | |
| 83 | - case 949: | |
| 84 | - return 'CP949'; // ANSI Korean (Wansung) | |
| 85 | - case 950: | |
| 86 | - return 'CP950'; // ANSI Chinese Traditional BIG5 | |
| 87 | - case 1200: | |
| 88 | - return 'UTF-16LE'; // UTF-16 (BIFF8) | |
| 89 | - case 1250: | |
| 90 | - return 'CP1250'; // ANSI Latin II (Central European) | |
| 91 | - case 1251: | |
| 92 | - return 'CP1251'; // ANSI Cyrillic | |
| 93 | - case 0: | |
| 94 | - // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program | |
| 95 | - case 1252: | |
| 96 | - return 'CP1252'; // ANSI Latin I (BIFF4-BIFF7) | |
| 97 | - case 1253: | |
| 98 | - return 'CP1253'; // ANSI Greek | |
| 99 | - case 1254: | |
| 100 | - return 'CP1254'; // ANSI Turkish | |
| 101 | - case 1255: | |
| 102 | - return 'CP1255'; // ANSI Hebrew | |
| 103 | - case 1256: | |
| 104 | - return 'CP1256'; // ANSI Arabic | |
| 105 | - case 1257: | |
| 106 | - return 'CP1257'; // ANSI Baltic | |
| 107 | - case 1258: | |
| 108 | - return 'CP1258'; // ANSI Vietnamese | |
| 109 | - case 1361: | |
| 110 | - return 'CP1361'; // ANSI Korean (Johab) | |
| 111 | - case 10000: | |
| 112 | - return 'MAC'; // Apple Roman | |
| 113 | - case 10001: | |
| 114 | - return 'CP932'; // Macintosh Japanese | |
| 115 | - case 10002: | |
| 116 | - return 'CP950'; // Macintosh Chinese Traditional | |
| 117 | - case 10003: | |
| 118 | - return 'CP1361'; // Macintosh Korean | |
| 119 | - case 10004: | |
| 120 | - return 'MACARABIC'; // Apple Arabic | |
| 121 | - case 10005: | |
| 122 | - return 'MACHEBREW'; // Apple Hebrew | |
| 123 | - case 10006: | |
| 124 | - return 'MACGREEK'; // Macintosh Greek | |
| 125 | - case 10007: | |
| 126 | - return 'MACCYRILLIC'; // Macintosh Cyrillic | |
| 127 | - case 10008: | |
| 128 | - return 'CP936'; // Macintosh - Simplified Chinese (GB 2312) | |
| 129 | - case 10010: | |
| 130 | - return 'MACROMANIA'; // Macintosh Romania | |
| 131 | - case 10017: | |
| 132 | - return 'MACUKRAINE'; // Macintosh Ukraine | |
| 133 | - case 10021: | |
| 134 | - return 'MACTHAI'; // Macintosh Thai | |
| 135 | - case 10029: | |
| 136 | - return 'MACCENTRALEUROPE'; // Macintosh Central Europe | |
| 137 | - case 10079: | |
| 138 | - return 'MACICELAND'; // Macintosh Icelandic | |
| 139 | - case 10081: | |
| 140 | - return 'MACTURKISH'; // Macintosh Turkish | |
| 141 | - case 10082: | |
| 142 | - return 'MACCROATIAN'; // Macintosh Croatian | |
| 143 | - case 21010: | |
| 144 | - return 'UTF-16LE'; // UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE | |
| 145 | - case 32768: | |
| 146 | - return 'MAC'; // Apple Roman | |
| 147 | - case 32769: | |
| 148 | - throw new PHPExcel_Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) | |
| 149 | - case 65000: | |
| 150 | - return 'UTF-7'; // Unicode (UTF-7) | |
| 151 | - case 65001: | |
| 152 | - return 'UTF-8'; // Unicode (UTF-8) | |
| 153 | - } | |
| 154 | - throw new PHPExcel_Exception('Unknown codepage: ' . $codePage); | |
| 155 | - } | |
| 38 | + /** | |
| 39 | + * Convert Microsoft Code Page Identifier to Code Page Name which iconv | |
| 40 | + * and mbstring understands | |
| 41 | + * | |
| 42 | + * @param integer $codePage Microsoft Code Page Indentifier | |
| 43 | + * @return string Code Page Name | |
| 44 | + * @throws PHPExcel_Exception | |
| 45 | + */ | |
| 46 | + public static function NumberToName($codePage = 1252) | |
| 47 | + { | |
| 48 | + switch ($codePage) { | |
| 49 | + case 367: return 'ASCII'; break; // ASCII | |
| 50 | + case 437: return 'CP437'; break; // OEM US | |
| 51 | + case 720: throw new PHPExcel_Exception('Code page 720 not supported.'); | |
| 52 | + break; // OEM Arabic | |
| 53 | + case 737: return 'CP737'; break; // OEM Greek | |
| 54 | + case 775: return 'CP775'; break; // OEM Baltic | |
| 55 | + case 850: return 'CP850'; break; // OEM Latin I | |
| 56 | + case 852: return 'CP852'; break; // OEM Latin II (Central European) | |
| 57 | + case 855: return 'CP855'; break; // OEM Cyrillic | |
| 58 | + case 857: return 'CP857'; break; // OEM Turkish | |
| 59 | + case 858: return 'CP858'; break; // OEM Multilingual Latin I with Euro | |
| 60 | + case 860: return 'CP860'; break; // OEM Portugese | |
| 61 | + case 861: return 'CP861'; break; // OEM Icelandic | |
| 62 | + case 862: return 'CP862'; break; // OEM Hebrew | |
| 63 | + case 863: return 'CP863'; break; // OEM Canadian (French) | |
| 64 | + case 864: return 'CP864'; break; // OEM Arabic | |
| 65 | + case 865: return 'CP865'; break; // OEM Nordic | |
| 66 | + case 866: return 'CP866'; break; // OEM Cyrillic (Russian) | |
| 67 | + case 869: return 'CP869'; break; // OEM Greek (Modern) | |
| 68 | + case 874: return 'CP874'; break; // ANSI Thai | |
| 69 | + case 932: return 'CP932'; break; // ANSI Japanese Shift-JIS | |
| 70 | + case 936: return 'CP936'; break; // ANSI Chinese Simplified GBK | |
| 71 | + case 949: return 'CP949'; break; // ANSI Korean (Wansung) | |
| 72 | + case 950: return 'CP950'; break; // ANSI Chinese Traditional BIG5 | |
| 73 | + case 1200: return 'UTF-16LE'; break; // UTF-16 (BIFF8) | |
| 74 | + case 1250: return 'CP1250'; break; // ANSI Latin II (Central European) | |
| 75 | + case 1251: return 'CP1251'; break; // ANSI Cyrillic | |
| 76 | + case 0: // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program | |
| 77 | + case 1252: return 'CP1252'; break; // ANSI Latin I (BIFF4-BIFF7) | |
| 78 | + case 1253: return 'CP1253'; break; // ANSI Greek | |
| 79 | + case 1254: return 'CP1254'; break; // ANSI Turkish | |
| 80 | + case 1255: return 'CP1255'; break; // ANSI Hebrew | |
| 81 | + case 1256: return 'CP1256'; break; // ANSI Arabic | |
| 82 | + case 1257: return 'CP1257'; break; // ANSI Baltic | |
| 83 | + case 1258: return 'CP1258'; break; // ANSI Vietnamese | |
| 84 | + case 1361: return 'CP1361'; break; // ANSI Korean (Johab) | |
| 85 | + case 10000: return 'MAC'; break; // Apple Roman | |
| 86 | + case 10001: return 'CP932'; break; // Macintosh Japanese | |
| 87 | + case 10002: return 'CP950'; break; // Macintosh Chinese Traditional | |
| 88 | + case 10003: return 'CP1361'; break; // Macintosh Korean | |
| 89 | + case 10006: return 'MACGREEK'; break; // Macintosh Greek | |
| 90 | + case 10007: return 'MACCYRILLIC'; break; // Macintosh Cyrillic | |
| 91 | + case 10008: return 'CP936'; break; // Macintosh - Simplified Chinese (GB 2312) | |
| 92 | + case 10029: return 'MACCENTRALEUROPE'; break; // Macintosh Central Europe | |
| 93 | + case 10079: return 'MACICELAND'; break; // Macintosh Icelandic | |
| 94 | + case 10081: return 'MACTURKISH'; break; // Macintosh Turkish | |
| 95 | + case 21010: return 'UTF-16LE'; break; // UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE | |
| 96 | + case 32768: return 'MAC'; break; // Apple Roman | |
| 97 | + case 32769: throw new PHPExcel_Exception('Code page 32769 not supported.'); | |
| 98 | + break; // ANSI Latin I (BIFF2-BIFF3) | |
| 99 | + case 65000: return 'UTF-7'; break; // Unicode (UTF-7) | |
| 100 | + case 65001: return 'UTF-8'; break; // Unicode (UTF-8) | |
| 101 | + } | |
| 102 | + | |
| 103 | + throw new PHPExcel_Exception('Unknown codepage: ' . $codePage); | |
| 104 | + } | |
| 105 | + | |
| 156 | 106 | } |