如何防止在Drupal数据库中保存非ascii字符?

时间:2010-06-30 15:10:12

标签: drupal utf-8 mojibake

我注意到在一些用户将内容输入到节点主体后的Drupal中,引号和撇号等字符将保存为: ’ “

这是由于用户输入奇数字符或其他东西......

  1. 这是否意味着Drupal数据库 尚未配置utf8?
  2. 如何纠正这个问题呢? 实际上只保存为'?
  3. 更新 事实证明,在我的情况下,解码后的字符是我下载Drupal mysql数据库转储的结果,该转储被保存为ascii并将其加载到Mysql中以重新填充数据库。这发生了两次,一次是我迁移托管,第二次是我弄乱了数据库并且必须手动恢复。

    解决方案是您正在使用Drupal备份和迁移模块并且您下载备份文件并且必须手动恢复是将文件转换为记事本或ascii中的任何文件到utf8。我测试了这个并且它有效。

2 个答案:

答案 0 :(得分:0)

  
      
  1. 这是否意味着还没有为utf8配置Drupal数据库?
  2.   

我认为数据库表最有可能设置为latin1。看一看。或者,也可能是数据库 connection 不是UTF-8编码的(发送SET NAMES utf8;查询有时会有帮助。)

答案 1 :(得分:0)

’ “’ “错误解释为windows-1252的UTF-8编码(不是 latin-1)。

  

这是否意味着Drupal数据库   尚未配置utf8?

这是一种可能性。其他人是:

  • 将数据放入数据库的程序已损坏。
  • 从数据库中检索数据的程序已损坏。