我有一个TYPO3 v.4.3.2和索引搜索引擎2.12.0。如果我进行搜索,我会看到
Ã-而不是Ö
Ã而不是ü
所以似乎utf8字符表示为ISO-8859-1。如果我查看源代码,我会看到
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在TS设置中还有一个
page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8
所以它是索引搜索扩展名的设置?
答案 0 :(得分:1)
您需要将数据库和Typo3设置为uft-8。在Typo3中,选项forceCharset = utf-8和setDBinit = set names utf-8并在installtool中设置字符集utf-8。要在命令行中将mysql数据库转换为utf-8,请输入:
使用以下命令转储原始数据库:
mysqldump -u root -p --opt --default-character-set=latin1 --skip-set-charset DBNAME > DBNAME
然后使用sed我将所有出现的单词latin1更改为utf8:
sed -e 's/latin1/utf8/g' -i ./DBNAME.sql
然后我从这里创建了新数据库,然后导入了dumpfile。
mysql -p -e "create database DBNAME"
mysql -p --default-character-set=utf8 DBNAME < DBNAME.sql
以下是mysql手册中关于alter table tbl_name CONVERT TO ...
的内容http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
“如果要更改表格默认字符集和所有字符 列(CHAR,VARCHAR,TEXT)到新的字符集,使用如下语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;
警告
上述操作在字符集之间转换列值。 如果您在一个字符集中有一列(如。),那么这不是您想要的 latin1)但存储的值实际上使用其他一些,不兼容 字符集(如utf8)。在这种情况下,您必须执行以下操作 每个这样的专栏:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
这样做的原因是转换为或时没有转换 来自BLOB专栏。 “
如果您需要转换所需的内容,请转储它并使用我的方法或对每列使用ALTER TABLE tbl_name CHANGE ....