跳至主要内容

关于GB2312/Big5中文WordPress站点向UTF-8的转换

http://blog.eqiao.com/2004/06/02/gb2312big2wordpressutf-8/

今天偶然在"桑林志"上看到桑葚提出想将GB2312的WP转换为UTF-8( http://yanfeng.org/blog/index.php?p=193 ),正好我也准备将我作技术支持的几个WP作此转换,因此花了点时间尝试了一下,最后发现也不是件太难的事。

考虑到WP在中文世界的blogger中使用逐渐广泛,因此写一个简单的过程在这里,希望对大家有点用处。

首先,关于WP版本问题。
考虑到WP 1.2中的新特色,特别是新的plugin机制,我的建议是所有未升级的朋友,立即升级到1.2版本。
另外,考虑到新的WP 1.2安装,会默认使用 UTF-8 编码,因此新安装不存在此问题。因此,这里将升级和转换并在一起,作个简单介绍。

前提:
这里假定你的原来安装中,WP所用的 table prefix 为了 wp_。
另外,你的站点上安装有 phpMyAdmin ,版本最好是最新的 2.60(具体什么版本就可以我不确定,总之只要开始支持 zh-utf-8 / zh-tw-utf-8 就可以。

大致过程如下:
1 导出数据
通过浏览器指向phpmyadmin界面,然后一定要注意选择 Language 为 Chinese SImplified (zh) (对big5用户,选择 Traditional Chinese (zh-tw)),然后选择你要操作的数据库。
选择"导出"操作,然后通过 Shift或者 Ctrl加鼠标将你的WP安装的所有table全部选择(就是所有 wp_* table),然后导出存入你的硬盘中。

2 处理
为了保留原来的数据以作为备份以防止转换不成功,将对以前所有数据表使用一个新的前缀导入,如选择前缀为 wpnew_。
用编辑器打开刚刚导出的数据,要使用可以全局替换的编辑器,如在Windows下可以用 EditPlus, Linux下可以在 GNOME 中使用 gedit (以上正是我使用的软件),然后将 wp_ 全局替换为 wpnew_。

3 导入
浏览器刷新 phpMyAdmin 界面,这样回到phpMyAdmin进入初始界面,你可以重新选择 Language。这里,选择 Chinese Simplified (zh-utf-8) (big5用户则是 Traditional Chinese (zh-tw-utf-8))。
进入你的wp安装数据库,然后选择 "SQL"。

注意这里你可以通过浏览到你处理过的数据库备份文件方式,或者通过在 textarea 中粘贴的方式导入数据,这里如果是文件一次导入,要注意phpMyAdmin最大处理文件为4M。实际上最为安全的方式却是通过一段段复制粘贴来导入,因为太大的文件一次导入,很容易造成服务器 timeout 而失败。

全部数据导入后,可以说转换工作就完成了。大家可能不相信会如此简单,可是实际就是如此简单。关键点就是两条:导出时用gb2312/big5 (zh/zh-tw),导入时用 zh-utf-8/zh-tw-utf-8。

4 升级
首先使用ftp(或者shell操作,不过估计一般用户只能使用ftp)备份所有旧的wp安装文件。
然后上载1.2的文件覆盖所有旧的文件。因为多数站点都会有首页修改或者css的定制,因此上载时,注意 index.php, wp-config.php以及css文件不要替换。
将旧的wp-config.php下载下来,使用编辑器打开,将 $table_prefix 从 'wp_ '修改为 'wpnew_',然后上载覆盖原文件。
将index.php下载下来备用。
然后浏览器指向 yoursite.com/wp-admin/upgrade.php,很简单两步完成数据库更新。这里大家注意到,原先的gb2312或者big5存储的数据库已经原样保留,所有更新操作,都已经是针对以 wpnew_ 为前缀的utf-8格式存储的表。
然后到你的升级过的wp站点,登陆,然后到"Options->Reading",你可以看到 Encoding for pages and feeds 为 utf-8。
如果你在首页中加入了一些菜单或者别的中文内容,转换后你会发现,在新的 utf-8 编码下,这些内容是乱码,现在就要解决最后这个问题。
管理界面中到"Templates"操作,在 index.php 编辑区域中,将里面内容全部删除,然后使用编辑器,打开前面下载下来的 index.php,将其内容全部复制,然后粘贴进编辑框中,然后 "Update File"。

至此,就完成了升级到 WP 1.2 并同时转换编码为 UTF-8 的过程。

我想,所有使用 WP 的朋友都应该升级到1.2并作此转换。
此文中所提到的思想,应该对其他程序同样有用。
所有blog软件,特别是支持 pingback/trackback的软件,都应该鼓励用户全部使用 utf-8 编码,因为这样才能保证 trackback 内容的可读性。否则,不同编码的站点的trackback信息放在一起,你要不停地刷新页面编码才能看完所有内容。
还有就是,这样的转换后,RSS阅读器就可以很容易地阅读各个站点,而使用gb2312/big5的情况下,绝大多数 rss reader,特别是使用强语法检查的软件,都无法阅读生成的rss文件。
另外,提供 content feed 的站点或者服务,比如 CNBlog 的最新blog列表这样服务,应该提供 utf-8 格式,否则在使用 utf-8 的WP之类的blog站点上,其内容无法阅读。

(以上匆匆写成,组织混乱,不过技术角度,应该是有用的。如果有时间有必要再重新整理吧。)

评论

此博客中的热门博文

How to Design a Store Front Sign

In this Article we will talk about designing a store front for a business. What color or size should your Letters & designs be? What to put on your sign and why?, then be ready to Get in touch with sign people and get your best deal. Large lettering with out a front sign could save you time and money Do your products have a special shape or color to emulate on your sign? Kodak is always in yellow and black, Coca-Cola white on red, Etc. Muffler places, have a sign in the shape of a muffler. your phone number on the store front some place, but not on the identification sign, (door, or window) Your Product & logos can be arranged on the front sign, or window. Not on the Pole sign, Store hours & phone number could fit in your design and by using the product color, it could add product recognition & enhance your design. Suppliers may provide plenty of advert...

music forum (zt)

24. moonlight - ≡ Sound Of Nature ≡ -     15. Tone Quebec Network 17.Ukoo http://www.hispeed.com.cn/Forum/LoadForum.asp?Foru m / a> http://bbs.dd81.com/index.php 30. Jazz pawnshop http://www.sogua.com/ 6. Lyrics 吾爱 http://www.inkui.com Reading of the singer in mind 2. Hyun tone http://d.sogou.com/ http://www.beihai365.com/bbs/forumdisplay.php?f/a> 20. Left Bank • Teana http://bbs.flamesky.com/ 8. Sogou sogou- 25.U Shadow 吾爱 sound waves 4. Need 14.HDCD http://www.commus.com/ 29, Buddhist music, do not know the name of the http://www.itpub.net/forum79.html http://bbs.kugoo.com/index.asp http://bbs.uying.com/176/Index.aspx http://board.verycd.com/ http://board.verycd.com/f8.html 13.MP3 barrage http://bbs.51lrc.com/index.asp?board/a> A pleasant song - "Dancing circulation" 19.Verycd of http://bbs.breezecn.com/ http://www.mp4cn.com/2008/index.html Sound of Music Forum, http://www.jazzsky.com/lb/cgi-bin/leobbs.cgi http://www.luopo.co...

找到一个可以替代ghs.google.com的地址

用Goole Blogger的自定义域名功能需要用到 ghs.google.com 做CNAME,或者用ping ghs.google.com 得出的IP做一个A记录.但是,伟大的GFW已经把 ghs.google.com 和部分IP屏蔽在大陆之外.这样的壮举使得我们的自定义域名不能正常访问,或者让你的网页背景.图片被滤掉,精心做成的模板变得惨白不堪. 那么,我们可不可以找一个替代 ghs.google.com 的地址呢?当然能.因为Google是强大的.它有许多有用的IP地址让你去探寻. 对 ghs.google.com 分析研究后发现, ghs.google.com 这台服务器并没有提供实质性的服务,而只是选择访问者访问最快的服务器(Google全球性公司,很多地区都有服务器).我们只要找到其他服务器的IP地址,并且这个IP地址没被屏蔽,那么就成了. 寻找这样的IP地址需要用到tracert命令.即在CMD模式下输入:tracert ghs.google.com ,在已经屏蔽的当下,最后自然得不出结果,这就需要我们使用代理了.使用不同地区的代理运行tracert ghs.google.com 命令. tracert ghs.google.com 的最后一跳会有类似这样的域名: eh-in-f121.google.com 如果在不用代理的情况下,你能ping通这个域名,那么恭喜你,你找到了!现在就可以用这个域名代替 ghs.google.com 设置你的CNAME了,ping出的IP地址可以做A记录,CNAME和A记录,只做其中之一就可以. hs-in-f121.google.com 64.233.179.121 eh-in-f121.google.com 72.14.207.121 bx-in-f121.google.com 66.249.81.121 ik-in-f121.google.com 66.249.91.121 这4个在我所在地区不能使用,而可以使用 tw-in-f121.google.com 72.14.235.121 或者209.85.171.121也可用 下面是一些不断更新的:74.125.43.121 除了使用代理来寻找,也可以通过一些网站提供的功能来寻找这个地址,很方便,就是使用网站提供的Traceroute.这些网站有: h...