Я все еще не понимаю, как работает iconv
.
Например,
$string = "Löic & René";
$output = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $string);
Я получаю,
Примечание: iconv () [function.iconv]: Обнаружен недопустимый символ на входе net ниже, но все еще не работает,
У меня была ситуация, когда мне нужно было транслитерировать некоторые символы, а другие игнорировать (для странных диакритических знаков, таких как айн или хамза). Добавление // TRANSLIT // IGNORE помогло мне. Он транслитерирует все, что можно транслитерировать, но затем отбрасывает то, чего не может быть.
Итак:
$string = "ʿABBĀSĀBĀD"; echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $string); // output: [nothing, and you get a notice] echo iconv('UTF-8', 'ISO-8859-1//IGNORE', $string); // output: ABBSBD echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $string); // output: ABBASABAD // Yay! That's what I wanted!
и еще один,
Andries Seutens 07-Nov-2009 07:38 When doing transliteration, you have to make sure that your LC_COLLATE is properly set, otherwise the default POSIX will be used. To transform "rené" into "rene" we could use the following code snippet: setlocale(LC_CTYPE, 'nl_BE.utf8'); $string = 'rené'; $string = iconv('UTF-8', 'ASCII//TRANSLIT', $string); echo $string; // outputs rene
Как я могу их решить?
Спасибо.
] РЕДАКТИРОВАТЬ:
Это исходный файл, код которого я тестирую,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" class="no-js"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <?php $string = "Löic & René"; $output = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $string); ?> </html>