diff --git a/application/utils.inc.php b/application/utils.inc.php index b1f2d2160..4d7aa7038 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -1090,5 +1090,28 @@ class utils } return $response; } + + /** + * Get a standard list of character sets + * + * @param array $aAdditionalEncodings Additional values + * @return array of iconv code => english label, sorted by label + */ + public static function GetPossibleEncodings($aAdditionalEncodings = array()) + { + // Encodings supported: + // ICONV_CODE => Display Name + // Each iconv installation supports different encodings + // Some reasonably common and useful encodings are listed here + $aPossibleEncodings = array( + 'UTF-8' => 'Unicode (UTF-8)', + 'ISO-8859-1' => 'Western (ISO-8859-1)', + 'WINDOWS-1251' => 'Cyrilic (Windows 1251)', + 'WINDOWS-1252' => 'Western (Windows 1252)', + 'ISO-8859-15' => 'Western (ISO-8859-15)', + ); + $aPossibleEncodings = array_merge($aPossibleEncodings, $aAdditionalEncodings); + asort($aPossibleEncodings); + return $aPossibleEncodings; + } } -?> diff --git a/core/csvbulkexport.class.inc.php b/core/csvbulkexport.class.inc.php index bc9d7ad90..409c58d1b 100644 --- a/core/csvbulkexport.class.inc.php +++ b/core/csvbulkexport.class.inc.php @@ -30,7 +30,7 @@ class CSVBulkExport extends TabularBulkExport $oP->p(" * csv format options:"); $oP->p(" *\tfields: (mandatory) the comma separated list of field codes to export (e.g: name,org_id,service_name...)."); $oP->p(" *\tseparator: (optional) character to be used as the separator (default is ',')."); - $oP->p(" *\tcharacter-set: (optional) character set for encoding the result (default is 'UTF-8')."); + $oP->p(" *\tcharset: (optional) character set for encoding the result (default is 'UTF-8')."); $oP->p(" *\ttext-qualifier: (optional) character to be used around text strings (default is '\"')."); $oP->p(" *\tno_localize: set to 1 to retrieve non-localized values (for instance for ENUM values). Default is 0 (= localized values)"); } @@ -54,7 +54,7 @@ class CSVBulkExport extends TabularBulkExport $this->aStatusInfo['text_qualifier'] = utils::ReadParam('other-text-qualifier', '"', true, 'raw_data'); } $this->aStatusInfo['localize'] = !((bool)utils::ReadParam('no_localize', 0, true, 'integer')); - $this->aStatusInfo['charset'] = strtoupper(utils::ReadParam('character-set', 'UTF-8', true, 'raw_data')); + $this->aStatusInfo['charset'] = strtoupper(utils::ReadParam('charset', 'UTF-8', true, 'raw_data')); } @@ -79,7 +79,7 @@ class CSVBulkExport extends TabularBulkExport public function EnumFormParts() { - return array_merge(parent::EnumFormParts(), array('csv_options' => array('separator', 'character-set', 'text-qualifier', 'no_localize') ,'interactive_fields_csv' => array('interactive_fields_csv'))); + return array_merge(parent::EnumFormParts(), array('csv_options' => array('separator', 'charset', 'text-qualifier', 'no_localize') ,'interactive_fields_csv' => array('interactive_fields_csv'))); } public function DisplayFormPart(WebPage $oP, $sPartId) @@ -141,6 +141,22 @@ class CSVBulkExport extends TabularBulkExport $oP->add('
'.Dict::S('UI:CSVImport:Encoding').': '; - $sFileLoadHtml .= ''; // IE 8 has some troubles if the font is different + $sFileLoadHtml .= '