跳至主要内容

关于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...

How to Make Money from Home Posting Links With No Out of Pocket Expense

Many people are earning money working from home just posting links on a blog, a website, or on well organized Social network marketing website. Anyone can earn substantial income by knowing what to do, where to do it, and how to do it. This article is designed around the Know How concepts to help people without that knowledge to set up their Blogs or Websites to achieve goal. Money is a medium of exchange that brings financial success TRAFFIC EXCHANGE ACCOUNT Log into your website or blog account and place the adsense code into the html document. Then save your document. Upload you website or blog to the internet following any instruction you received from your webmaster. Remember that your webmaster host your website or blog absolutely free. You must publish your site or blog for changes to take place. You now need free traffic resources to advertise and promote your new blog...

找到一个可以替代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...