За последние 24 часа нас посетили 18038 программистов и 1599 роботов. Сейчас ищет 991 программист ...

И снова кодировки :)

Тема в разделе "PHP для новичков", создана пользователем antonn, 25 ноя 2007.

  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Собсно вопрос - как определить? текст из файла на сервере, выводится в браузер, результирующая windows-1251, и ессно если файл юникодовый - будет ерунда. Есть ли более-менее проверенные способы проверки исходной кодировки? Желательно без всяких доп. расширений пхп.
     
  2. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    внятнее, пожалуйста
     
  3. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    есть файл на сервере. текстовый. я этот файл file() и вывожу в браузер - echo()
    страница отдается в windows-1251, поэтому если файл в какой нибудь cp866 или UTF-8, то в браузер выведется ерунда.
    поэтому вопрос - как определить исходную кодировку файла?
     
  4. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    vasa_c
    да, эту вероятность уже попробывал, потому и задал вопрос, чет как то кривовато иногда определяет :)
     
  6. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    А со стопроцентной вероятностью определить кодировку текста не зная ничего о нем нельзя.
    Вы сами должны знать, что за файлы у вас лежат и откуда они появились и в какой кодировке.
     
  7. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Далеко не всегда ;)
    Я сохраняю через скрипт в файл текст в Виндовс кодировке, а воспроизвожу его в Mac почему-то :(((
     
  8. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    mb_detect_encoding например...
     
  9. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    DarkElf
    ессно ей и определял...
     
  10. ValaR

    ValaR Активный пользователь

    С нами с:
    3 май 2007
    Сообщения:
    196
    Симпатии:
    0
    Адрес:
    Челябинск
    Если текст в файле небольшой, то можно переводить через пользовательскую функцию charset_x_win. Её описание и библиотека здесь:
    http://popoff.donetsk.ua/text/work/libs/a/charset/.
    Правда переводит она только из koir и utf8.
     
  11. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    ValaR, прежде чем давать ответ, прочитайте вопрос
     
  12. ValaR

    ValaR Активный пользователь

    С нами с:
    3 май 2007
    Сообщения:
    196
    Симпатии:
    0
    Адрес:
    Челябинск
    Я имел ввиду, что при использовании этой функции, кодировку не надо будет вообще определять. То есть просто всегда перекодировать в cp1251. И проблема соотвественно будет решена.
    А насчет быстродействия, то если, повторюсь, текст в файле небольшой, то на производительность, мое мнение, это несильно скажется.
     
  13. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Вам не кажется, что прежде чем перекодировать в cp1251 нужно определить в чем на данный момент находится текст?
     
  14. ValaR

    ValaR Активный пользователь

    С нами с:
    3 май 2007
    Сообщения:
    196
    Симпатии:
    0
    Адрес:
    Челябинск
    А как это сделать? mb_decet_encoding не всегда работает корректно, ни одного скрипта, хотя бы на 99,9 процентов определяющий точно кодировку, лично я не знаю.
     
  15. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Это собственно и есть ответ на первоначальный вопрос.
    Более-менее проверенные способы есть.
    Стопроцентных нет.
     
  16. ValaR

    ValaR Активный пользователь

    С нами с:
    3 май 2007
    Сообщения:
    196
    Симпатии:
    0
    Адрес:
    Челябинск
    Ну вот я и предложил лучший способ, на свой взгляд. Конечно, я не ответил на сам вопрос, но, по моему убеждению, подсказка как решить саму проблему, это тоже самое, что и ответ на вопрос, или даже лучше, если вопрос задан неправильно.
     
  17. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    И в чем же заключалась ваша подсказка?