我有一个数据库 - 里面有一张名为文章的表。
我想将标题和内容字段转换为utf8
现在 - 所有数据都看起来像这样:פורטל רעל × ×¤×ª×— רשמית!
我希望它变成正常的希伯来字符。
谢谢
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
它可与UPDATE语句一起使用来更正字段:
UPDATE tablename SET field = CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8);
如果你需要转换整个数据库,可以将其备份为 databaseback.sql
文件,然后在命令行中输入以下命令:
iconv -f latain -t utf-8 < databaseback.sql > databaseback.utf8.sql
如果您没有命令行访问权限,可以在 PHP 中使用http://www.php.net/manual/en/function.iconv.php来转换每一行。
最后别忘了在 phpMyAdmin 中转换每个字段的排序规则,这样就可以轻松地恢复 utf8 格式。
更新
如果你遇到了 iconv is not recognized
的问题,那么说明你未安装 iconv
。
更容易的解决方案是: 将 MySQL 数据迁移到 Unicode
http://daveyshafik.com/archives/166-migrating-mysql-data-to-unicode.html
str = getDataAsString()
if(!isUTF8(str)) {
str = convert2UTF8(str)
}
saveStr2DB()
尝试
ALTER TABLE `tablename` CHANGE `field_name` `field_name` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
phpmyadmin
,进入那张表,修改属性...简单。 - xkeshav