TYPO3: indexed_search and encoding



我有一个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

所以它是一个设置从索引搜索扩展?

您需要将数据库和Typo3设置为uft-8。在Typo3中,它与选项forceCharset=utf-8和setDBinit =设置安装工具中的名称utf-8和设置字符集utf-8一起使用。要将mysql数据库转换为utf-8,在命令行输入:

使用以下命令转储原始db:

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

然后从这里创建新的数据库,然后导入转储文件。

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;

警告

上述操作在字符集之间转换列值。如果您在一个字符集中有一列(例如但存储的值实际上使用其他一些不兼容的字符集(如utf8)。在这种情况下,您必须执行以下操作每个这样的列:

 ALTER TABLE t1 CHANGE c1 c1 BLOB;
 ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;

这样做的原因是当您转换到或时没有转换从BLOB列。"

如果你需要转换内容,你需要转储它并使用我的方法或使用ALTER TABLE tbl_name CHANGE…

最新更新