2013-05-19 6 views
0

Мне нужны две переменные PHP для соответствия ($path1 и $path2). Я могу изменить только один из них ($path1).eÌ против Ã «против

Переменные содержат букву ë, но одна из них написана как ë, а другая - ë.

При установке метатега utf-8 в HTML-странице страницы они отображаются как ë, что хорошо, но это не изменяет переменные PHP.

Использование utf8_encode ($path1) похоже не работает.

Как я могу это решить?

PS: Этот вопрос был поднят в ранее опубликованном вопросе, но поскольку это был другой вопрос, чем тот, который я попросил, я его повторно обработал.

+0

Вы должны сбрасывать и записывать шестнадцатеричные коды, так как 'eÌ' и' Ã '' абсолютно бесполезны. (они кодируются несколько раз) – pozs

ответ

0

Письмо с акцентом можно записать двумя способами в UTF-8 (и справедливы)

f.ex. эти отпечатки те же:

  • LATIN CAPITAL LETTER A WITH RING ABOVE (U + 00C5) является "\xC3\x85"
  • A следуют COMBINING RING ABOVE (U + 030A) является "A\xCC\x8A"

Вы можете нормализовать их Normalizer::normalize(), но вам нужно включите для этого ограниченный пакет intl.

+0

А теперь я понимаю! Есть ли другой способ нормализовать его? I ', в общедоступной среде размещения и, вероятно, не в состоянии включить пакет intl ... :( – user2391587

+0

Или есть функция, возможно, это переводит только символы с несколькими параметрами? (Мне очень сложно понять, вся эта кодировка stuff: s) – user2391587

+0

Я боюсь, других вариантов нет. Простое преобразование не будет работать, потому что целевая кодировка такая же, как исходная кодировка. Вы можете конвертировать в другую кодировку юникода (f.ex. utf- 16), а затем перекодировать как utf-8, но я думаю, что результаты будут идентичны исходным. – pozs

Смежные вопросы