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 | } |
---|