我正在尝试将网站从A转移到B.不幸的是,我遇到了某种字符编码问题。我会完成我的工作。如果有人能指出缺少编码的地方,我将不胜感激。
1)从原始数据库生成SQL。 [php脚本遍历构建SQL +插入数据的数据库中的表。]
2)将SQL保存到文件
3)在新主机上运行SQL。 SQL查询以“SET NAMES'utf8'”
开头4)看看phpmyadmin中的表:货币显示精细 - 表格整理是utf8_general
5)运行CMS页面 - 货币显示为 和?。? [页面具有以下编码。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
]
6)运行相同的原始页面并且货币显示正常。
这是我被困的地方。由于旧网站和新网站都有相同的文件,所以这肯定会指向数据库作为关键点...但是phpMyAdmin显示这些字符就好......我很困惑。有什么想法吗?
答案 0 :(得分:0)
CMS在连接数据库时也应使用SET NAMES 'utf8'
。
也许默认编码是新服务器上的另一个编码。
答案 1 :(得分:0)
我要检查的第一个是源代码文件的编码。如果它在Windows-1250(cp1250)中编码,源代码将生成SQL并将其保存在Windows-1250编码文件中。因此,这些.sql文件中的字符可能会混乱 - 通过在某个文本编辑器中打开来检查它。
当将SQL保存到.sql文件时 - 如何执行此操作?有标题和下载还是通过fwrite函数?
另一件事可能是在使用SQL查询创建.sql时您没有将名称设置为utf8,因此生成的SQL不是UTF8 ...也请检查..