Перекодировка компонента (модуля)

#1 9 октября 2013 в 13:48
Всех приветствую! Давайте делиться опытом, как перекодировать например компонент от версии 1.9 (и ниже) под версию 1.10 (и выше). Желательно подробно, по пунктам. и все что для этого нужно.
#2 9 октября 2013 в 14:09
Пункт всего один. Открываете текст модуля/компонента в Notepad++, выделяете весь текст (Ctrl+A), запоминаете в буфер обмена (Ctrl+C) и в меню "Кодировки" выбираете UTF-8 без BOM. Вставляете из буфера (Ctrl+V), сохраняете (Ctrl+S). Ребенок справится за 3 сек.
Если у компонента или модуля есть таблица в БД, не забудть ее перекодировать через phpMyAdmin. Например, так: снимаете дамп таблицы, в дампе исправляете DEFAULT CHARSET=cp1251 на DEFAULT CHARSET=utf8, старую таблицу удаляете, новую заливаете.
#3 9 октября 2013 в 16:07
Или же, открываете файлы модуля/компонента в программе EditPlus, затем выбираете пункт меню Файл -> Сохранить как...
В появившемся диалоговом окне указываете кодировку UTF-8 и жмакаете кнопку "Сохранить".
#4 9 октября 2013 в 18:03

Пункт всего один. Открываете текст модуля/компонента в Notepad++, выделяете весь текст (Ctrl+A), запоминаете в буфер обмена (Ctrl+C) и в меню "Кодировки" выбираете UTF-8 без BOM. Вставляете из буфера (Ctrl+V), сохраняете (Ctrl+S). Ребенок справится за 3 сек.

Странник
1. открыть 2. выделить 3. скопировать 4. выбрать другую кодировку 5. вставить 6. сохранить facepalm

Если протереть монитор в том месте, где раскрывается "меню "Кодировки"" и чуть ниже, то можно увидеть пункты "Преобразовать в ..." и список. Без всяких там танцев.
#5 9 октября 2013 в 18:48
ZmeeLove, Пользуйтесь на здоровье. Меняет кодировку во всех файлах указанных папок в UTF8 БЕЗ BOM!!!
Пользовался софтинкой уж больше года назад, так что не помню точно, что там к чему, поэтому для экспериментов советую на копиях пробовать.
#6 9 октября 2013 в 21:09
Что-то вы позабыли о том, что простого конвертирования в utf-8 недостаточно. Дополнительно нужно пробежаться по всем строковым функциям, регекспам и соответственно применить аналоги функций из mbstring, поправить регулярные выражения. Кроме этого, есть функции, которые не работают корректно с utf-8. Все это применимо с учетом того, что в InstantCMS техтребования к php от 5.2 версии. Соответственно при более старших версиях или кастомных компиляциях php нюансы уменьшаются.
#7 9 октября 2013 в 21:12
Fuze, вопрос был "как перекодировать", а не "как адаптировать", потому все и отвечают именно на этот вопрос.
#8 9 октября 2013 в 21:32
stealthdebuger, поправка Fuze справедлива, так как если бы вопрос был только в перекодировании, то автор вероятно не указывал бы версии инстанта!

Желательно подробно, по пунктам. и все что для этого нужно.

ZmeeLove
По пунктам первое это то что сказали, перекодировать а потом очень нужно знание языков и отличие версий и нюансов работы с разными кодировками чтоб внести те правки о которых упомянул Fuze!
Ну и конечно нужно хорошо знать и понимать работу движка...
js тоже с разной кодировкой по разному пишется — в общем даже с пониманием этого но без знаний, пункты тут не помогут!)

поправил...)
#9 9 октября 2013 в 21:58
По-моему каждый должен заниматься своим делом.А такие вопросы часто возникают из-за доработок, которые делают недобросовестные исполнители.Продал и забыл.И что прикажите делать? искать самостоятельный выход, но он иногда так труден, что легче 10 статей написать )))
#10 9 октября 2013 в 22:06
всем спасибо за советы) попробую пошаманить, посмотрим что из этого выйдет)))
#11 10 октября 2013 в 10:03

Продал и забыл

Петрмаг
поддержка других денег стоит, да и не по силам она начинающим разработчикам, особенно одиночкам
#12 10 октября 2013 в 10:43


Пункт всего один. Открываете текст модуля/компонента в Notepad++, выделяете весь текст (Ctrl+A), запоминаете в буфер обмена (Ctrl+C) и в меню "Кодировки" выбираете UTF-8 без BOM. Вставляете из буфера (Ctrl+V), сохраняете (Ctrl+S). Ребенок справится за 3 сек.
Если у компонента или модуля есть таблица в БД, не забудть ее перекодировать через phpMyAdmin. Например, так: снимаете дамп таблицы, в дампе исправляете DEFAULT CHARSET=cp1251 на DEFAULT CHARSET=utf8, старую таблицу удаляете, новую заливаете.

Странник
#13 10 октября 2013 в 10:46
Если не ошибаюсь в notepad++ есть функция перекодировать в utf-8. Зачем копировать и вставлять?
#14 10 октября 2013 в 13:21

Зачем копировать и вставлять?

farayov
ТС не зря ведь указал версию 1.9. Текст модуля/компонента может содержать комментарии на русском языке, вывод текста в браузер или в шаблон, тоже на русском языке, админка модуля/компонента (если есть) не локализована. Все это в результате превратится в кракозябры. Если Вас кракозябры устраивают… ну, можете делать по своей методике, мне не жалко, хотя могли бы и сами догадаться.

Если протереть монитор в том месте, где...

lokanaft
Как известно, павлин гораздо больше гордится красотой, чем мозгами. Когда протирка монитора важнее, чем сесть и подумать головой, бывают и не такие лулзы. Так спешил посчитать пункты, что про кракозябры как-то не подумал. Не в первый раз, не в первый раз…
#15 10 октября 2013 в 13:45
Добавлю к рекомендации Странник, иногда простого копирования в буфер не достаточно (по разному). Иногда поможет только так:
Вырезать-- вставить на новую страницу-- преобразовать в UTF-8 БЕЗ БОМ (старую, пустую страницу)-- потом с новой страницы скопировать и вставить обратно в преобразованную.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.