0

我正在使用 TemplaVoila 1.5.5 和 TYPO3 4.5.5。我试图将 TYPO3 数据库从latin1_swedish_ci(ISO-8859-1) 切换到utf8_general_ci. 因此,我编写了一个 PHP 脚本,它将所有内容都转换为二进制,然后将所有内容都转换为 utf8_general_ci。除了 TemplaVoila(Typo3 中的所有其他设置已经为 UTF-8 而不是数据库准备好了),一切似乎都正常工作。打开 TYP3 页面时收到以下消息:

找不到表/行“pages:x”的数据结构集。请先选择一个数据结构和模板对象。

如果我查看模板映射,我会收到下一条消息,即没有可用的映射。tx_templavoila_tmplobj在列中的表中templatemapping,映射存储为 BLOB。当转换为 UTF-8 时,一切都消失了。因为它的二进制文件我无法访问它并以简单的方式对其进行转换。

我怎样才能保留映射?我不想映射所有新的东西。我能做些什么?

这里有两个建议的解决方案,但我想知道是否有更好的解决方案。在迈克尔的解决方案中,我还必须重新映射所有内容?

恢复映射的最快方法是什么?

4

2 回答 2

1

我不能说您是否能够在转换后恢复数据,但如果您愿意运行转换脚本,我已经通过以下方法取得了一些成功:

  1. 反序列化 tx_templavoila_tmplobj 表的模板映射字段中的数据。
  2. 将未序列化的数据数组转换为您的目标编码(有一个辅助方法 t3lib_cs::convArray,您可以将其用于此目的)。
  3. 序列化转换后的数据并将其保存回模板映射字段。
于 2012-05-07T14:28:34.543 回答
0

最快的方法:只需手动将字段更改回mediumtext. 所有映射都应该再次正常。我知道,它又快又脏,但对我有用......

于 2012-05-09T11:38:51.253 回答