[289] | 1 | <?php |
---|
| 2 | /** |
---|
| 3 | * PHPExcel |
---|
| 4 | * |
---|
| 5 | * Copyright (c) 2006 - 2014 PHPExcel |
---|
| 6 | * |
---|
| 7 | * This library is free software; you can redistribute it and/or |
---|
| 8 | * modify it under the terms of the GNU Lesser General Public |
---|
| 9 | * License as published by the Free Software Foundation; either |
---|
| 10 | * version 2.1 of the License, or (at your option) any later version. |
---|
| 11 | * |
---|
| 12 | * This library is distributed in the hope that it will be useful, |
---|
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
| 15 | * Lesser General Public License for more details. |
---|
| 16 | * |
---|
| 17 | * You should have received a copy of the GNU Lesser General Public |
---|
| 18 | * License along with this library; if not, write to the Free Software |
---|
| 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
---|
| 20 | * |
---|
| 21 | * @category PHPExcel |
---|
| 22 | * @package PHPExcel_Shared |
---|
| 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 |
---|
| 25 | * @version 1.8.0, 2014-03-02 |
---|
| 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 | */ |
---|
| 36 | class PHPExcel_Shared_CodePage |
---|
| 37 | { |
---|
| 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 10006: return 'MACGREEK'; break; // Macintosh Greek |
---|
| 87 | case 10007: return 'MACCYRILLIC'; break; // Macintosh Cyrillic |
---|
| 88 | case 10008: return 'CP936'; break; // Macintosh - Simplified Chinese (GB 2312) |
---|
| 89 | case 10029: return 'MACCENTRALEUROPE'; break; // Macintosh Central Europe |
---|
| 90 | case 10079: return 'MACICELAND'; break; // Macintosh Icelandic |
---|
| 91 | case 10081: return 'MACTURKISH'; break; // Macintosh Turkish |
---|
| 92 | case 32768: return 'MAC'; break; // Apple Roman |
---|
| 93 | case 32769: throw new PHPExcel_Exception('Code page 32769 not supported.'); |
---|
| 94 | break; // ANSI Latin I (BIFF2-BIFF3) |
---|
| 95 | case 65000: return 'UTF-7'; break; // Unicode (UTF-7) |
---|
| 96 | case 65001: return 'UTF-8'; break; // Unicode (UTF-8) |
---|
| 97 | } |
---|
| 98 | |
---|
| 99 | throw new PHPExcel_Exception('Unknown codepage: ' . $codePage); |
---|
| 100 | } |
---|
| 101 | |
---|
| 102 | } |
---|