| |
|
|
| | Кто понимает что здесь написано?
Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация
|
Я пишу:
<?php
echo iconv('utf-8', 'cp1251//TRANSLIT ', $my_text);
|
Не работает.
Как правильно?
И второе.
Как перехватить ситуацию, и вывести соответствующее предупреждение,
если исходный текст $my_text содержит символы не переводимые в требуемую кодировку? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(22.11.2007 в 12:17)
| | | iconv() - это функция перекодировки
рабочий пример:
<?
$my_text = "йцуке";
echo iconv('cp1251', 'utf-8', $my_text);
?>
|
и второе:
<?
$my_text = "йцуке";
if(!iconv('utf-8', 'cp1251', $my_text))
echo "а кодировка строки то не та!";
else
echo iconv('cp1251', 'utf-8', $my_text);
?>
|
| |
| |
|
|
| |
|
|
| |
для: Eugene77
(22.11.2007 в 12:17)
| | | 1. Установить локаль для начала:
<?php
setlocale(LC_CTYPE, 'POSIX');
?>
|
, а потом:
<?php
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
?>
|
2 Регулярным выражением проверить текст на соответствие | |
| |
|
|
| |
|
|
| |
для: mihdan
(23.11.2007 в 13:31)
| | | Всё это не даёт нормальной транслитерации. Вот примерЫ:
<?php
$my_text = "Žluťoučký kůň\n";
setlocale(LC_CTYPE, 'POSIX');
echo iconv('UTF-8', 'windows-1251//TRANSLIT', "Žluťoučký kůň\n");
echo "<br>";
echo iconv('utf-8', 'ascii//TRANSLIT', $my_text);
echo "<br>";
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
// Žluťoučký kůň
// Žluťoučký kůň
// Žluťoučký kůň
?>
В ASCII, как известно, таких символов нет, да ивообще везде одно и тоже.
To retsoul:
Меня транситерация интересует.
Будьте добры прочесть название темы! | |
| |
|
|
| |
|
|
| |
для: Eugene77
(28.11.2007 в 15:55)
| | | такое пойдет? только следите за кодировкой :)
function translit($string){
$rus = array("/а/", "/б/", "/в/",
"/г/", "/ґ/", "/д/", "/е/", "/ё/", "/ж/",
"/з/", "/и/", "/й/", "/к/", "/л/", "/м/",
"/н/", "/о/", "/п/", "/р/", "/с/", "/т/",
"/у/", "/ф/", "/х/", "/ц/", "/ч/", "/ш/",
"/щ/", "/ы/", "/э/", "/ю/", "/я/", "/ь/",
"/ъ/", "/і/", "/ї/", "/є/", "/А/", "/Б/",
"/В/", "/Г/", "/ґ/", "/Д/", "/Е/", "/Ё/",
"/Ж/", "/З/", "/И/", "/Й/", "/К/", "/Л/",
"/М/", "/Н/", "/О/", "/П/", "/Р/", "/С/",
"/Т/", "/У/", "/Ф/", "/Х/", "/Ц/", "/Ч/",
"/Ш/", "/Щ/", "/Ы/", "/Э/", "/Ю/", "/Я/",
"/Ь/", "/Ъ/", "/І/", "/Ї/", "/Є/");
$lat = array("a", "b", "v",
"g", "g", "d", "e", "e", "zh", "z", "i",
"j", "k", "l", "m", "n", "o", "p", "r",
"s", "t", "u", "f", "h", "c", "ch", "sh",
"sh'", "y", "e", "yu", "ya", "'", "'", "i",
"i", "e", "A", "B", "V", "G", "G", "D",
"E", "E", "ZH", "Z", "I", "J", "K", "L",
"M", "N", "O", "P", "R", "S", "T", "U",
"F", "H", "C", "CH", "SH", "SH'", "Y", "E",
"YU", "YA", "'", "'", "I", "I", "E");
return preg_replace($rus, $lat, $string);
}
|
| |
| |
|
|
| |
|
|
| |
для: Zirkon
(28.11.2007 в 19:23)
| | | Спасибо за интересную функцию!
Не совсем этого хотелось, но так всё же лучше, чем вообще никак.
Я полагал, что iconv может сразу и кодировку поменять и транслит применить, но
что-то никак не получается её применить.
Придётся на основе вашей функции что-то ещё самому присочинить. | |
| |
|
|
|