Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Апгрейд с 4.1 до 4.5 (http://forum.typo3.ru/showthread.php?t=9897)

MAXIMUS1988 28.02.2012 19:36

Я конечно могу опять залить старый движок на сервер, но смысл? Что именно Вам нужно знать по TemplaVoila чтобы понять проблему?

MAXIMUS1988 28.02.2012 19:47

Вот еще запись в базе с таблицы tx_templavoila_datastructure в title Main Page в поле dataprot:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3DataStructure>
<meta type="array">
<langDisable>1</langDisable>
</meta>
<ROOT type="array">
<tx_templavoila type="array">
<title>ROOT</title>
<description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
</tx_templavoila>
<type>array</type>
<el type="array">
<field_menu type="array">
<tx_templavoila type="array">
<title></title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>TypoScriptObject</eType>
<TypoScriptObjPath>lib.menu</TypoScriptObjPath>
</tx_templavoila>
</field_menu>
<field_col1 type="array">
<tx_templavoila type="array">
<title>Column1</title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>ce</eType>
<TypoScript><![CDATA[
10= RECORDS
10.source.current=1
10.tables = tt_content
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
]]></TypoScript>
<oldStyleColumnNumber type="integer">0</oldStyleColumnNumber>
</tx_templavoila>
<TCEforms type="array">
<config type="array">
<type>group</type>
<internal_type>db</internal_type>
<allowed>tt_content</allowed>
<size>5</size>
<maxitems>200</maxitems>
<minitems>0</minitems>
<multiple>1</multiple>
<show_thumbs>1</show_thumbs>
</config>
<label>Column1</label>
</TCEforms>
</field_col1>
<field_col2 type="array">
<tx_templavoila type="array">
<title>Column2</title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>ce</eType>
<TypoScript><![CDATA[
10= RECORDS
10.source.current=1
10.tables = tt_content
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
]]></TypoScript>
<oldStyleColumnNumber type="integer">1</oldStyleColumnNumber>
</tx_templavoila>
<TCEforms type="array">
<config type="array">
<type>group</type>
<internal_type>db</internal_type>
<allowed>tt_content</allowed>
<size>5</size>
<maxitems>200</maxitems>
<minitems>0</minitems>
<multiple>1</multiple>
<show_thumbs>1</show_thumbs>
</config>
<label>Column2</label>
</TCEforms>
</field_col2>
<field_footertext type="array">
<tx_templavoila type="array">
<title></title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>TypoScriptObject</eType>
<TypoScriptObjPath>lib.footer</TypoScriptObjPath>
</tx_templavoila>
</field_footertext>
</el>
</ROOT>
</T3DataStructure>
Я не знаю...посмотрите это во всех UID. Их 6 в таблице. И что это, вообще?)

-=UncleByte=- 28.02.2012 22:43

А вы сами на скриншоте той же базы не видите что ли что сопоставление кодировки в базе utf8_general_ci, кодировка всей базы вроде как тоже такая же, а половина таблиц вдруг почему-то в cp1251 - из-за этого все глюки и есть. Других причин нет и быть не может. Значит, надо конвертировать все в правильный utf8 и перезаливать целиком и полностью все в нем. И забыть cp1251 как страшный сон.

MAXIMUS1988 29.02.2012 14:16

Цитата:

Сообщение от -=UncleByte=- (Сообщение 33191)
А вы сами на скриншоте той же базы не видите что ли что сопоставление кодировки в базе utf8_general_ci, кодировка всей базы вроде как тоже такая же, а половина таблиц вдруг почему-то в cp1251 - из-за этого все глюки и есть. Других причин нет и быть не может. Значит, надо конвертировать все в правильный utf8 и перезаливать целиком и полностью все в нем. И забыть cp1251 как страшный сон.

Да, я увидел сразу, что кодировка базы не вся в utf8! И что нужна конвертация. Только как это сделать с таблицами MySqli? Просто вручную выбрать кодировку utf8 в тех таблицах где cp1251 и всё данные сконвертируются? Или скопировать тот код, который я написал выше и в любом редакторе переконвертировать в utf8? Хотя он и так в utf8...1й или второй вариант?

-=UncleByte=- 29.02.2012 14:46

Просто сохраните дамп штатными средствами и посмотрите в обычном текстовом редакторе в какой он кодировке. Потом переведите этот сохраненный дамп в нужную вам кодировку, откорректируйте служебную информацию mysql в дампе, касающуюся кодировок и сохраните его. После этого очистите всю базу и заново выставив параметры соединения с mysql и параметры сопоставления кодировок залейте дамп.

Андрей Аксенов 01.03.2012 09:26

Зачем все эти трудности?
На всякий случай делайте резервную копию БД.
Ставите расширение sfdbutf8, пи помощи его конвертируйте БД в utf8.
Далее, в самой БД ставим кодировку по умолчанию в utf8_general_ci.
На всякий случай делаем проверку БД в install tool, заодно подгружаем заново все статические таблицы.
Все. Это проверено ни на одном сайте. Работает.

-=UncleByte=- 01.03.2012 12:13

@Андрей, дело в том что конвертировать можно и средствами самого mysql прямо в том же phpMyAdmin, но надо хотя бы представлять что там на самом деле лежит, а то бывали случаи когда записи хранились в utf-8 вроде бы, но были в cp1251.

Андрей Аксенов 01.03.2012 12:29

Цитата:

Сообщение от -=UncleByte=- (Сообщение 33208)
@Андрей, дело в том что конвертировать можно и средствами самого mysql прямо в том же phpMyAdmin, но надо хотя бы представлять что там на самом деле лежит, а то бывали случаи когда записи хранились в utf-8 вроде бы, но были в cp1251.

Это понятно, способов много... Для этого и нужно сначала создать резервную копию базы данных. Для меня проще всего так.
Хотя можно установить и на TYPO3 phpMyAdmin и глянуть, что там...
Установить в нем же нужное сопоставление для всей базы данных - utf8_general_ci, оно понадобиться и для вновь создаваемых таблиц и т. д.
Затем переконвертить поля/таблицы в неправильной кодировке...
Кстати, сталкивался с тем, что иногда связанные поля не могут быть сконвертированы поодиночке - нужно выделить оба связанных поля и одновременно их сконвертировать... тут и упомянутое мной расширение sfdbutf8 не помогает - все ручками...
Ну и обязательно, как уже говорил, проверку БД в install tool, заодно подгружаем заново все статические таблицы.
Тут уже недостающие таблицы пересоздаются самой TYPO3 в уже нужной кодировке... Что касается статических таблиц, то они тоже пересоздаются в нужной кодировке, бывали случаи, когда при регистрации в форме, при выборе страны (на родном языке) появлялись кракозябры... Пересоздание статических таблиц (статик инфо тейбл в данном случае) помогло...
Далее все зависит от конкретного случая... Возможно придется вмешаться и ручками подкорректировать записи содержимого в базе данных. Но это уже другая история...

-=UncleByte=- 01.03.2012 12:37

@Андрей, в том и дело что там половина таблиц в cp1251 и половина в utf8 - неважно чем делать дамп, в нем все будет ровно так же и для решения этого вопроса нужно либо дамп делить на куски и конвертировать кусками, либо руками в текстовом редакторе, который позволяет менять на лету кодировку в части файла.

Андрей Аксенов 01.03.2012 12:44

Ну дамп - в любом случае текстовый файл... А уж чем с ним работать...
Проще отметить таблицы с кодировкой в cp1251 и еще раз отдельно их выгрузить, а уж в том же нотапде++ кодировку поменять нет проблем... Ну и загрузить их обратно...
Кстати, может в том же Sypex Dumper можно на лету это сделать? Я не пробовал, но как вариант...
Хотя у меня недавно с одним сайтом схожая проблема была... Увидел это по тому, как даже непичатный пробел не распознавался. Ну так вот, описанным мною способом все решилось без танцев с бубном...


Часовой пояс GMT +4, время: 12:18.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot