我有一个TYPO3 v4.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所以这是一个来自索引搜索扩展的设置?
发布于 2011-12-15 02:38:19
您需要将数据库和Typo3设置为uft-8。在Typo3中,它带有选项forceCharset=utf-8和setDBinit =在安装工具中设置名称utf-8和设置字符集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然后,我从这里创建了新数据库,然后导入了转储文件。
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列或从BLOB列转换时,不会进行转换。“
如果您需要转换内容,您需要转储它并使用我的方法或使用ALTER TABLE tbl_name CHANGE ...对于每一列。
https://stackoverflow.com/questions/8509756
复制相似问题