0

我已经将一个大型 phpbb3 数据库从 latin1 数据库转移到 utf-8 一切正常,现在我需要更改数据库中的“奇怪”字符。昨天我找到了一个有效的方法,现在我找不到了,我尝试了:

update phpbb_topics set topic_title = replace(topic_title, 'Ã', 'à');
update phpbb_topics set topic_title = replace(topic_title, 'è', 'è');

基本上我需要将表格字段中的所有 Ã 字符更改为 à 等等。

你怎么能做到这一点?

谢谢

4

2 回答 2

1

更新 phpbb_topics 设置 topic_title = replace(replace(topic_title, 'è', 'è'), 'Ã', 'à');

你应该回答自己以下问题:

  • 什么二进制数据存储在数据库中(使用 ascii() 函数或 SELECT ... INTO DUMPFILE)
  • 什么二进制数据被发送到客户端(它并不总是与存储的相同)
  • 您的客户如何显示收到的二进制数据?(尝试不同的客户和不同的选择)
于 2009-12-15T16:00:39.403 回答
0

我会将它转储到 .sql 文件中,然后用 sed 或文本编辑器替换字符(如果文件不是很大)。之后,您再次运行脚本。也许有一种方法可以直接在数据库中执行此操作,但我不知道。

我的解决方案的问题在于它不是原子的。在转储和重新插入之间对数据库的更改将丢失。

问候拉斐尔

于 2009-12-15T11:02:16.023 回答