<?php
|
|
/** @noinspection PhpComposerExtensionStubsInspection */
|
|
namespace PhpZip\Constants;
|
|
/**
|
* Class DosCodePage.
|
*/
|
final class DosCodePage
|
{
|
const CP_LATIN_US = 'cp437';
|
|
const CP_GREEK = 'cp737';
|
|
const CP_BALT_RIM = 'cp775';
|
|
const CP_LATIN1 = 'cp850';
|
|
const CP_LATIN2 = 'cp852';
|
|
const CP_CYRILLIC = 'cp855';
|
|
const CP_TURKISH = 'cp857';
|
|
const CP_PORTUGUESE = 'cp860';
|
|
const CP_ICELANDIC = 'cp861';
|
|
const CP_HEBREW = 'cp862';
|
|
const CP_CANADA = 'cp863';
|
|
const CP_ARABIC = 'cp864';
|
|
const CP_NORDIC = 'cp865';
|
|
const CP_CYRILLIC_RUSSIAN = 'cp866';
|
|
const CP_GREEK2 = 'cp869';
|
|
const CP_THAI = 'cp874';
|
|
/** @var string[] */
|
private static $CP_CHARSETS = [
|
self::CP_LATIN_US,
|
self::CP_GREEK,
|
self::CP_BALT_RIM,
|
self::CP_LATIN1,
|
self::CP_LATIN2,
|
self::CP_CYRILLIC,
|
self::CP_TURKISH,
|
self::CP_PORTUGUESE,
|
self::CP_ICELANDIC,
|
self::CP_HEBREW,
|
self::CP_CANADA,
|
self::CP_ARABIC,
|
self::CP_NORDIC,
|
self::CP_CYRILLIC_RUSSIAN,
|
self::CP_GREEK2,
|
self::CP_THAI,
|
];
|
|
/**
|
* @param string $str
|
* @param string $sourceEncoding
|
*
|
* @return string
|
*/
|
public static function toUTF8($str, $sourceEncoding)
|
{
|
$s = iconv($sourceEncoding, 'UTF-8', $str);
|
|
if ($s === false) {
|
return $str;
|
}
|
|
return $s;
|
}
|
|
/**
|
* @param string $str
|
* @param string $destEncoding
|
*
|
* @return string
|
*/
|
public static function fromUTF8($str, $destEncoding)
|
{
|
$s = iconv('UTF-8', $destEncoding, $str);
|
|
if ($s === false) {
|
return $str;
|
}
|
|
return $s;
|
}
|
|
/**
|
* @return string[]
|
*/
|
public static function getCodePages()
|
{
|
return self::$CP_CHARSETS;
|
}
|
}
|