Мне нужно было работать с Facebook SDK, поэтому с некоторой помощью я написал сценарий, который может найти информацию о человеке. Но если в его имени будет диакритический характер, он будет искажен, я попытался установить кодировку в файлах SDK, но это не поможет.
Например, если имя René Beneš, это будет RenĂ © BeneĹ.
Не могли бы вы мне помочь?
спасибо
Я могу описать на уровне персонажей то, что здесь происходит – надеюсь, что это поможет вам приблизиться к решению. Вы, по-видимому, получаете данные в кодировке UTF-8, но ваше программное обеспечение интерпретирует его как ISO-8859-2 (ISO Latin 2, «Восточноевропейское») кодирование. Например, буква «é» (U + 00E9) представляет собой два байта 0xC3 0xA9 в UTF-8. Если байты неправильно интерпретируются в соответствии с ISO-8859-2, то 0xC3 становится Ă, а 0xA9 становится ©.
Поэтому вы должны попытаться заставить ваше программное обеспечение читать и обрабатывать данные в UTF-8 или перекодировать его из UTF-8 в кодировку, которую вы используете.
Я уверен, что utf8_decode и / или utf8_encode отлично подойдут вам.
1-й пример – PHP
Я предлагаю вам использовать функцию PHP, называемую str_replace ():
$name = 'René Beneš'; $replace = array('é','š'); $replaced = array('e','s'); // output = Rene Benes echo str_replace($replace, $replaced, $name);
Подробнее об этой функции можно узнать на официальном сайте PHP – str_replace () .
Кроме того, дополнительные сведения и коды HTML о специальных символах доступны в специальных символах в HTML .
Второй пример – HTML
Попробуйте заменить:
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type" />
между вашим <head></head>
.