Просмотр полной версии : как конвертировать текст в ISO-8859-1 ?
файл в UTF-8:
$text = "русский в утф";
header('Content-type: text/html; charset=ISO-8859-1');
echo "<meta http-equiv='content-type' content='text/html; charset=ISO-8859-1' />";
echo mb_convert_encoding($text, 'ISO-8859-1', 'UTF-8');
выводит кашу
что не так?
в браузере сайты с ISO-8859-1 отображаются нормально
И где же в исо 8859-1 кириллица?
ISO 8859-5
но форум то в 8859-1 и нормально все отображает
а так не канает:
$text = "русски в утф";
header('Content-type: text/html; charset=ISO-8859-5');
echo "<meta http-equiv='content-type' content='text/html; charset=ISO-8859-5' />";
echo mb_convert_encoding($text, "ISO-8859-5");
из cp-1251 в ISO-8859-5 нормально конвертит
а из utf-8 в ISO-8859-5 --- нет
В последней строке кода потерялся UTF-8
это необязательный параметр
Может, и необязательный, но без него не будет работать
$text = 'русский в утф';
header ('Content-type: text-html; charset=ISO-8859-5');
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-5\">";
echo $text . "<br>";
echo mb_convert_encoding ($text, 'ISO-8859-5', 'auto');
ЗЫ. Необходимости юзать малораспространенную кодировку в рунете вообще не вижу
объясните пожалуйста, как тогда я размещаю руками сообщение нормальными русскими буквами на форум, у которого кодировка ISO-8859-1 ? а если скриптом - то всякая хрень
помогите кто-нибудь с этой кодировкой - я готов заплатить
попробуй http://il.php.net/manual/en/function.iconv.php
$title = iconv("UTF-8", "ISO-8859-5//IGNORE", $title);
$message = iconv("UTF-8", "ISO-8859-5//IGNORE", $message);
c ISO-8859-5 ещё при выводе на экран из файла в utf-8 - видно русский текст
а при отправке на форуме закорючки
а если ISO-8859-1 - то вообще строки из одних пробелов
посмотри в каком виде отправляются данные .. у меня както была трабла что при отрпаке из формы текст отсылался ввиде html эквевилентов .. тоесть вместо букв были ихние хтмл коды и при выводи была трабла ... или же кодировка самого файла со скриптом не соответствует .. хз
я вот и смотрю что браузер отправляет как раз html-эквиваленты
***! я все-таки сделал это!
function unicode_mk_cyr($str) {
$encode = "";
for ($ii=0;$ii<strlen($str);$ii++) {
$xchr=substr($str,$ii,1);
if (ord($xchr)>191) {
$xchr=ord($xchr)+848;
$xchr="&#" . $xchr . ";";
}
if(ord($xchr) == 129) {
$xchr = "Ѓ";
}
if(ord($xchr) == 163) {
$xchr = "Ј";
}
if(ord($xchr) == 138) {
$xchr = "Љ";
}
if(ord($xchr) == 140) {
$xchr = "Њ";
}
if(ord($xchr) == 143) {
$xchr = "Џ";
}
if(ord($xchr) == 141) {
$xchr = "Ќ";
}
if(ord($xchr) == 189) {
$xchr = "Ѕ";
}
if(ord($xchr) == 188) {
$xchr = "ј";
}
if(ord($xchr) == 131) {
$xchr = "ѓ";
}
if(ord($xchr) == 190) {
$xchr = "ѕ";
}
if(ord($xchr) == 154) {
$xchr = "љ";
}
if(ord($xchr) == 156) {
$xchr = "њ";
}
if(ord($xchr) == 159) {
$xchr = "џ";
}
if(ord($xchr) == 157) {
$xchr = "ќ";
}
$encode=$encode . $xchr;
}
return $encode;
}
$title = urlencode(unicode_mk_cyr($title));
$message = urlencode(unicode_mk_cyr($message));
функцию взял из комментов php.net
это не выход .. такое происходит когда вводимы текст не соответствует кодировке страницы (или чтото типо того) легче перевести всё в ut8 разве нет?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot