【发布时间】:2026-01-11 03:25:01
【问题描述】:
我在将 joomla 从 1.0 升级到 1.5 时遇到了一些问题(我必须一直升级到 1.7;)。
无论如何,我的客户有一个旧的 joomla 1.0 安装,并且该网站是克罗地亚语的。这意味着我必须处理像 Č,č,Ć,ć,Đ,đ 之类的字符...旧数据库在 latin1_swedish_ci 排序规则中,我已经将它与迁移脚本一起转移到了 joomla 1.5 的新数据库中,它在 utf8_general_ci 中。
这导致(如预期的那样)一些字符混淆,例如: ć 变成了 è、È --> Č 等等……
将 1.0 数据库转换为 utf8 排序规则不是一种选择,因为它会在 Č,ć,đ,đ 等第一次出现时切断其余内容...
所以,我正在做的是这个查询:
update jos_content
set introtext = replace(introtext, 'È', 'Č');
这样做是获取 joomla 内容表,并在所有介绍文本中将 È 替换为 Č。
我也为标题做了这个,但是当我尝试用全文做这个时,我得到了这个错误:
Error
SQL query:
UPDATE jos_content SET FULLTEXT = REPLACE( introtext, 'È', 'Č' ) ;
MySQL said:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext = replace(introtext, 'È', 'Č')' at line 2
所以,这是某种内存问题(毕竟这是一个全文)还是我只是做错了什么。另外,如果有更好的方法来替换所有这些字符,请告诉我,这是我从 MySQL“不可读”文档中发现的。
【问题讨论】:
-
还要注意复制错误 (?): SET `fulltext` = REPLACE(`fulltext`, ...
标签: mysql character-encoding joomla collation