e博士看台(11):汉字编码快速转换
网络通信
周周是个网页工程师,最近正在架设虚拟社区,工作和学习过程中体会到了PHP的强大功能。当应用到验证码功能时,发现PHP的图像处理不仅可以写入字符而且还可以绘图,奇怪的是不能直接写入汉字,需要转换编码。对于这个问题,e博士倒有两个方法可以实现汉字编码的转换。
方法一:打开系统自带的“记事本”,写入汉字,在保存文件前选择UTF-8编码格式并进行保存。这就是在PHP图像中写入汉字的关键步骤。
方法二:不借助专用工具,直接在浏览器中看出汉字的编码方式。我们以“我”字为例进行讲解。
打开浏览器,进入google搜索页面(http://www.google.com),输入“我”字并按回车后,在地址栏中出现http://www.google.com/search?q=%E6%88%91&ie=UTF-8&oe=UTF-8&hl=zh-CN&lr=lang_zh-CN%7Clang_zh-TW。其中E6 88 91就是“我”的UTF-8编码,这是ASCII码的十六进制表示形式(汉字在UTF-8码中占3个字节)。剩下工作就是在PHP程序中输入代码:
$chars=chr(0xE6).chr(0x88).chr(0x91)
ImageTTFText($im,$size,$angle,$x,$y,$blue,$font,$chars)
注意完整输入这两句代码,$font一定要为中文字体,否则显示出来的汉字是乱码。
提示:现在上网用户大多数都安装了类似上网助手的插件,这时地址栏里出来的可能就是“%CE%D2”。如果你碰到类似情况,则可以找一个提交表单的网页,将表单提交方式改成“get”,并且将网页编码改成UTF-8,表单中输入“我”再提交,这时就会发现地址栏出来的又是%E6%88%91了。