2006-04-30

中文的编码是个大问题

最近把blogger.com的评论页面转移到了帖子页内部,这样就可以很方便地发布评论了。我觉得这应该是blogger默认的才是,不知道blogger.com为什么不这样做。
我是直接把blogger的评论代码复制到模板内部的,但是一开始所有的中文评论都乱码。我想了半天,终于明白我一开始将blog的编码设置为GB2312,这样所有的页面都是GB2312编码的。而blogger的数据是以utf-8传送的。这样,我的页面上的评论的表单提交数据时就以GB2312提交,而blogger误认为是utf-8的,所以出现了乱码。
于是,我就在表单的属性里添加了编码的选项。
<form action="http://www.blogger.com/login-comment.do" onSubmit="isSubmit=true;" method="post" Accept-Charset="utf-8">
这样表单的数据提交就以utf-8的编码提交了。我试着以中文发表评论,显示完全正常。但是googlezhang发表的评论还是乱码。他是在美国,我估计是用的英文的操作系统。据说英文系统的默认编码是ISO-8859,那么我再将其作为utf-8提交,是不是就会出错呢?好吧,我再加上ISO-8859-1的选项。
<form action="http://www.blogger.com/login-comment.do" onSubmit="isSubmit=true;" method="post" Accept-Charset="utf-8, ISO-8859-1">
这样是不是正常了呢?我没有英文的系统,还请googlezhang或者哪位使用英文系统的兄弟试验一下,看看中文的评论是不是乱码。Thanks!!!
有点后悔当初blogger的编码选择了GB2312,还是utf-8好啊。现在想换回去也不行了,一换编码导致以前的文章全部乱码。哎……

11 条评论:

  1. 但是好象也不是十分的完美,还是要出现同改之前一样的发表评论的页面,嗯,没的多大的区别。

    回复删除
  2. 不可能完全脱离开blogger的系统进行评论的,最后预览或评论成功的页面肯定还是blogger的。

    回复删除
  3. 为什么还是不行呀,兄弟?

    回复删除
  4. 好了。但是刚才的那个不行,是因为我直接在文章底下写回帖,那里可能还没有改吧

    回复删除
  5. Look, If I type some chinese letter here, it still can not be read.
    ???????????????д???????????????

    回复删除
  6. 请问你用的是英文的操作系统吗?

    回复删除
  7. 好像不行啊
    怎么是乱码?

    回复删除
  8. 对于用英文的操作系统发表的评论,目前还是乱码,不知道怎么解决。谁有办法,支个招?

    回复删除
  9. 用http://www.haloscan.com为blogger提供comment和trackback服务

    回复删除
  10. 哎,我最开始用blogger是就是用了gb2312,中途不得已删掉了那个blog,改用utf-8,xx篇日志烟消云散!
    奉劝大家赶紧把编码改成utf-8吧,否则...
    utf-8才是王道!

    回复删除