首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3: indexed_search和编码

问TYPO3: indexed_search和编码
EN

Stack Overflow用户
提问于 2011-12-15 02:29:41
回答 1查看 819关注 0票数 0

我有一个TYPO3 v4.3.2和索引搜索引擎2.12.0。如果我进行搜索,我会看到一个

?-而不是?

?而不是ü

因此,utf8字符似乎被表示为ISO-8859-1。如果我查看源代码,我会发现

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在TS设置中,还有一个

代码语言:javascript
复制
page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8

所以这是一个来自索引搜索扩展的设置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-15 02:38:19

您需要将数据库和Typo3设置为uft-8。在Typo3中,它带有选项forceCharset=utf-8和setDBinit =在安装工具中设置名称utf-8和设置字符集utf-8。要在命令行中将mysql数据库转换为utf-8,请键入以下内容:

已使用以下命令转储原始数据库:

代码语言:javascript
复制
mysqldump -u root -p --opt --default-character-set=latin1 --skip-set-charset  DBNAME > DBNAME

然后使用sed将单词latin1的所有匹配项都更改为utf8:

代码语言:javascript
复制
sed -e 's/latin1/utf8/g' -i ./DBNAME.sql

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

代码语言:javascript
复制
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)更改为新字符集,请使用如下语句:

代码语言:javascript
复制
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

警告

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

代码语言:javascript
复制
 ALTER TABLE t1 CHANGE c1 c1 BLOB;
 ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;

这样做的原因是,当您转换为BLOB列或从BLOB列转换时,不会进行转换。“

如果您需要转换内容,您需要转储它并使用我的方法或使用ALTER TABLE tbl_name CHANGE ...对于每一列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8509756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档