UTF и проблема с русскими буквами И, ш

Создано Евгений Злобин в января 21, 2009

Довелось мне писать online-chat на php. Суть чата заключается в следующем. Через ajax шла передача данных, которые были в xml формате. Далее скрипт их обрабатывал и выводил на экран. И иногда вылазила непонятная ошибка, которая приводила к тому, что браузер InternetExplorer не хотел вообще принимать данные из БД, т.е. показывал пустое окно.

Долго я парился и не мог выяснить причину. Оказывается, utf8 иногда не корректно понимает русские буквы «ш» и «И». В результате появляются какие-то кракозябры типа непонятных символов и знаков вороса.

Решил я проблему заменой букв на html сущности

$str=str_replace(«И»,»И»,$str);
$str=str_replace(«ш»,»ш»,$str);

Различные услуги в столице России. услуги москва.
Скоро свадьба? свадьба гороскоп. Наш гороскоп вам поможет.
Купи часы. кристиан диор и другие известные бренды.

Может быть Вам это интересно?

Тэги: ,

22 отв. в “UTF и проблема с русскими буквами И, ш”

  1. Спасибо! Как-то тоже встречал подобную проблему, так и не нашел решения.

  2. Х-м, прикольно, приму к сведению… Хотя пока с таким не сталкивался… а граблей с аяксом и кодировками – немерянно, особенное веселье начинается, когда страничка и/или база не в утф :-) просто задолбаешься туда-сюда ковертить…

  3. Дело в разнице кодировок utf-8 и utf-8y. Если файл в utf-8y, то при открытии его как utf-8 какраз эта ошибка и вылазит.

  4. У меня такая же проблема возникает с Dreamviewer при установке той или иной винды…ппц уже замучался, вот и не знаю что делать. И на том спасибо, это кирпичик к ответу..

  5. дон Михо

    спасибо. сталкивался не раз. теперь – если повториться – буду во всеоружии.

  6. Пока не встречала такую, но если что я уже знаю как её решить, спасибо=)

  7. Еще одна подсказочка, для работы с разными кодировками, а также перекодирования я использую jEdit.

  8. С проблемой сталкивался. Теперь буду знать решение.

  9. Василий

    У меня была такая проблема с плагино all in seo в wordpress. Не знал как решить. Спасибо. Очень помогло.

  10. UTF8 прекрасно понимает все русские буквы.

  11. всёж линух есть линух и добавить нечего,этим всё сказано

  12. что бесплатно,то нездраво!

  13. UTF8 – главное западло JavaScript :)

  14. Владимир

    Вообще если русскоязычный сайт, то тут вполне подойдет кодировка windows-1251 так как русский язык считается сложным для изучения, то всякие там буржуи не станут писать на вашем сайте. А 1251 вполне подходит для русского, украинского, английского

  15. кстати, кроме букв аналогичные проблемы могут вызвать некоторые спецсимволы – например, угловые кавычки

  16. Я наблюдал проблемы с utf в Украинском. Характерные для украинского языка символы сортировались вне общей группы и выдавались выше буквы «А». Вот такие пироги … А в условиях Аякса это вообще отдельный разговор :(

  17. так это не решение.. это костыль… а вот как действительно решить вопрос.. хз.

  18. Прошу прощения за простой вопрос, но вышеописанные две строки кода вы куда вставляли? )

  19. Если данные идут через MySQL, то помогает выполнение следующего запроса, перед каждым(INSERT/UPDATE) соединением к базе данных:
    «SET NAMES utf8″
    но при этом, весь контент, что существовал в базе до начала использования этого фикса, будет интерпретироваться кракозябрами

  20. Александр

    UTF-8 хорошо понимает все русские буквы

  21. Просто и понятно, автору +5

  22. ох уж эти кодировки! сколько нервов они мне попротили

Оставить ответ