MT UTF-8 显示的问题


作者:Fenng
出处:http://www.dbanotes.net
日期:July 15, 2005

« Blog 归来记 | Blog首页 | 测试达梦数据库(1) »


在新的Web 服务器上遇到了 UTF-8 的页面乱码问题.

问题是这样的: 迁移到新的Web服务器上之后,发现我的 MT 发布之后(包含中文)从浏览器查看是乱码.必须要从浏览器端手工指定一下编码为 UTF-8 才可以正常显示.而我的主页面 页面代码是用的 GB2312.不存在这个问题. 另外一个比较奇怪的是我的 MT 后台管理显示的中文都是正常的.而 Blog 前台页面都不正常.

我开始以为是 mt.cfg 设置的问题.于是修改 mt.cfg 的发布编码为 gb2312.可这样后台显示就有问题了.真是一波未平一波又起.于是我恢复到以前的状态,开始对比后台的页面和前端的页面差异并反复测试没有结果.接着查看 Apache 的 httpd.conf(我登陆不到主机上,这个是 cometrue 给我的参考).发现 其中的全局设定了 default charset 为gb2312 . 这个时候找 cometrue 又找不到.对 Apache 又不是非常熟悉,郁闷的睡去.

第二天一早看到 车东 在线,赶紧问问他.车东告诉了我一个小技巧:wget -S 来获取响应 code.自己虽然也常用wget ,不过对这个参数倒是第一次用.果真,从服务器端来的响应代码告诉我默认编码是 GB2312 .

MSN 联系 cometrue ,请他在dbanotes这个虚拟主机一项加上一条:AddDefaultCharset off . Apache的手册有如下解释:

当回应信息中没有在 HTTP 头中包含任何关于内容类型的参数时,此指令将会指定一个字符集的名字并添加进去。这将覆盖在文档体中通过 META 标签指定的字符集。AddDefaultCharset Off这样的设置将会禁用此功能。AddDefaultCharset On将根据此指令的需要启用Apache内部的默认字符集——iso-8859-1。

因为 MT 的模板机制控制的非常好.每个页面都有指定字符集的Meta 标签。所以这样带来了最大的灵活性。Google搜索了一下,看到有的的经验是指定 AddDefaultCharset gb2312 .这样扩展性就不够好。一些其他字符集的页面就会给读者带来阅读障碍。其实这个问题在我第一次用MT的时候也遇到过,当时歪打正着,糊里糊涂的没注意这个细节。当然,对 http 的机制如果再熟悉一些可能就会直接定位了。

再次谢谢车东的提示!


Posted by Fenng at July 15, 2005 08:35 PM
Last updated at 06:19 PM on August 20, 2005


相关文章

Trackback Pings

TrackBack URL for this entry:
http://www.dbanotes.net/mt/mt-tb.cgi/211

Listed below are links to weblogs that reference MT UTF-8 显示的问题:

» 我的Blog即时更新 from Fenng
Ping Back来自:blog.csdn.net [Read More]

Tracked on July 17, 2005 02:37 PM

Comments


事情是这样的:

我的blog系统是MT,是老外的产品,默认编码是 UTF8。MT的数据库使用的是MySQ,虽然也是老外的产品,但是安装时候默认的数据库编码一般是latin1。其实这就已经出现了问题,比如你用 PHP查询的时候可能没有问题,但是用PHPMyadmin和其他数据库管理软件(比如MySQL CC)看到的汉字基本上是乱码。有时候连备份的.sql文件也是乱码。

恰好在这个新年开始的时候,我选择了升级MySQL和数据库备份的工作。我利用MySQL官方体提供的MySQL Administrator dump 1.4备份MT数据库,由于不熟悉这个工具(才出来吧,而且是英文的,就没有深究),备份的时候他的默认编码是UTF8,自然我备份下来的.sql文件是乱码。然后在升级完成后,我导入备份文件时就出现了乱码,更槽糕的是当时完全没有察觉,MT全部重建了,此时blog系统已经全部是乱码了。:(

process

现在的状况是:

1、我手头上只有.sql文件,且是乱码。

2、MT全部重建了,没有静态文件的存档。

我完全被这种状况给搞晕了,不知道大家有什么办法来解决?完美的转换备份文件的编码?恢复误删除的文件?各位有什么方法请告知于我,在下万分感谢。

Posted by: iSdq at January 11, 2006 11:36 AM

Post a comment



Hint: 为避免您收到垃圾邮件,请尽量不用使用真实的邮件地址.


Remember Me?