SOURCES: squirrelmail-cp1250_charset_encode.php (NEW) - cp1250 cha...
hawk
hawk at pld-linux.org
Fri Jun 2 19:34:31 CEST 2006
Author: hawk Date: Fri Jun 2 17:34:31 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- cp1250 charset encoding function for SquirrelMail
---- Files affected:
SOURCES:
squirrelmail-cp1250_charset_encode.php (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/squirrelmail-cp1250_charset_encode.php
diff -u /dev/null SOURCES/squirrelmail-cp1250_charset_encode.php:1.1
--- /dev/null Fri Jun 2 19:34:31 2006
+++ SOURCES/squirrelmail-cp1250_charset_encode.php Fri Jun 2 19:34:26 2006
@@ -0,0 +1,178 @@
+<?php
+
+/**
+ * cp1250 encoding functions
+ *
+ * takes a string of unicode entities and converts it to a cp1250 encoded string
+ * Unsupported characters are replaced with ?.
+ *
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @package squirrelmail
+ * @subpackage encode
+ */
+
+/**
+ * Converts string to cp1250
+ * @param string $string text with numeric unicode entities
+ * @return string cp1250 encoded text
+ */
+function charset_encode_cp1250 ($string) {
+ // don't run encoding function, if there is no encoded characters
+ if (! preg_match("'&#[0-9]+;'",$string) ) return $string;
+
+ $string=preg_replace("/&#([0-9]+);/e","unicodetocp1250('\\1')",$string);
+ // $string=preg_replace("/&#[xX]([0-9A-F]+);/e","unicodetocp1250(hexdec('\\1'))",$string);
+
+ return $string;
+}
+
+/**
+ * Return cp1250 symbol when unicode character number is provided
+ *
+ * This function is used internally by charset_encode_cp1250
+ * function. It might be unavailable to other SquirrelMail functions.
+ * Don't use it or make sure, that functions/encode/cp1250.php is
+ * included.
+ *
+ * @param int $var decimal unicode value
+ * @return string cp1250 character
+ */
+function unicodetocp1250($var) {
+
+ $cp1250chars=array('160'=> "\xA0",
+ '164'=> "\xA4",
+ '166'=> "\xA6",
+ '167'=> "\xA7",
+ '168'=> "\xA8",
+ '169'=> "\xA9",
+ '171'=> "\xAB",
+ '172'=> "\xAC",
+ '173'=> "\xAD",
+ '174'=> "\xAE",
+ '176'=> "\xB0",
+ '177'=> "\xB1",
+ '180'=> "\xB4",
+ '181'=> "\xB5",
+ '182'=> "\xB6",
+ '183'=> "\xB7",
+ '184'=> "\xB8",
+ '187'=> "\xBB",
+ '193'=> "\xC1",
+ '194'=> "\xC2",
+ '196'=> "\xC4",
+ '199'=> "\xC7",
+ '201'=> "\xC9",
+ '203'=> "\xCB",
+ '205'=> "\xCD",
+ '206'=> "\xCE",
+ '211'=> "\xD3",
+ '212'=> "\xD4",
+ '214'=> "\xD6",
+ '215'=> "\xD7",
+ '218'=> "\xDA",
+ '220'=> "\xDC",
+ '221'=> "\xDD",
+ '223'=> "\xDF",
+ '225'=> "\xE1",
+ '226'=> "\xE2",
+ '228'=> "\xE4",
+ '231'=> "\xE7",
+ '233'=> "\xE9",
+ '235'=> "\xEB",
+ '237'=> "\xED",
+ '238'=> "\xEE",
+ '243'=> "\xF3",
+ '244'=> "\xF4",
+ '246'=> "\xF6",
+ '247'=> "\xF7",
+ '250'=> "\xFA",
+ '252'=> "\xFC",
+ '253'=> "\xFD",
+ '258'=> "\xC3",
+ '259'=> "\xE3",
+ '260'=> "\xA5",
+ '261'=> "\xB9",
+ '262'=> "\xC6",
+ '263'=> "\xE6",
+ '268'=> "\xC8",
+ '269'=> "\xE8",
+ '270'=> "\xCF",
+ '271'=> "\xEF",
+ '272'=> "\xD0",
+ '273'=> "\xF0",
+ '280'=> "\xCA",
+ '281'=> "\xEA",
+ '282'=> "\xCC",
+ '283'=> "\xEC",
+ '313'=> "\xC5",
+ '314'=> "\xE5",
+ '317'=> "\xBC",
+ '318'=> "\xBE",
+ '321'=> "\xA3",
+ '322'=> "\xB3",
+ '323'=> "\xD1",
+ '324'=> "\xF1",
+ '327'=> "\xD2",
+ '328'=> "\xF2",
+ '336'=> "\xD5",
+ '337'=> "\xF5",
+ '340'=> "\xC0",
+ '341'=> "\xE0",
+ '344'=> "\xD8",
+ '345'=> "\xF8",
+ '346'=> "\x8C",
+ '347'=> "\x9C",
+ '350'=> "\xAA",
+ '351'=> "\xBA",
+ '352'=> "\x8A",
+ '353'=> "\x9A",
+ '354'=> "\xDE",
+ '355'=> "\xFE",
+ '356'=> "\x8D",
+ '357'=> "\x9D",
+ '366'=> "\xD9",
+ '367'=> "\xF9",
+ '368'=> "\xDB",
+ '369'=> "\xFB",
+ '377'=> "\x8F",
+ '378'=> "\x9F",
+ '379'=> "\xAF",
+ '380'=> "\xBF",
+ '381'=> "\x8E",
+ '382'=> "\x9E",
+ '711'=> "\xA1",
+ '728'=> "\xA2",
+ '729'=> "\xFF",
+ '731'=> "\xB2",
+ '733'=> "\xBD",
+ '8211'=> "\x96",
+ '8212'=> "\x97",
+ '8216'=> "\x91",
+ '8217'=> "\x92",
+ '8218'=> "\x82",
+ '8220'=> "\x93",
+ '8221'=> "\x94",
+ '8222'=> "\x84",
+ '8224'=> "\x86",
+ '8225'=> "\x87",
+ '8226'=> "\x95",
+ '8230'=> "\x85",
+ '8240'=> "\x89",
+ '8249'=> "\x8B",
+ '8250'=> "\x9B",
+ '8364'=> "\x80",
+ '8482'=> "\x99",
+ '65533'=> "\x81",
+ '65533'=> "\x83",
+ '65533'=> "\x88",
+ '65533'=> "\x90",
+ '65533'=> "\x98");
+
+ if (array_key_exists($var,$cp1250chars)) {
+ $ret=$cp1250chars[$var];
+ } else {
+ $ret='?';
+ }
+ return $ret;
+}
+?>
================================================================
More information about the pld-cvs-commit
mailing list