目的:将用十六进制保存的中文文件内容输出到屏幕。(十六进制文件打开后是乱码,Ultraedit 打开即是十六进制数)。
本人是在图形模式下输出的。未成功的代码如下,求大侠指教。
为了方便测试,给出下面对应的十六进制值
 西游记水浒传三国演义红楼梦:E8 A5 BF E6 B8 B8 E8 AE B0 E6 B0 B4 E6 B5 92 E4 
 BC A0 E4 B8 89 E5 9B BD E6 BC 94 E4 B9 89 E7 BA
 A2 E6 A5 BC E6 A2 A6   
<?php
$width = 200;
$height =300;
$img =  imagecreatetruecolor($width,$height) or die("不支持GD图像处理");
$line_color = imagecolorallocate($img, 255, 255, 255);
$font_type ="C://WINDOWS//Fonts//SIMKAI.TTF";
$str="E8A5BFE6B8B8E8AEB0E6B0B4E6B592E4BCA0E4B889E59BBDE6BC94E4B989E7BAA2E6A5BCE6A2A6";
$first = 0;
$second = 2;
$third = 4;
//开始循环连接。
do
{
//拼写一个字,循环输出一个值就不必再重复cn_char了。
$str1 = '0x'.substr($str,$first,2);
$str2 = '0x'.substr($str,$second,2);
$str3 = '0x'.substr($str,$third,2);
/*
 这里不知道如何将字符串类型的 十六进制数转换成对应的十六进制数值??
*/
//一个字。
$cn_begin = $cn_begin.chr($str1).chr($str2).chr($str3);
$first = $first + 4 ;
$second = $second + 4 ;
$third = $third + 4 ;
}while(strlen($str)%6<1)
imageline($img, 0, 40, 200, 40, $line_color);
imageline($img, 0, 260, 200, 260, $line_color);
//只需要这一个输出即可了。
imagettftext($img, 15, 0, 90, 254, $line_color, $font_type,$cn_begin);
imagepng($img);
imagedestroy($img);
?>
代码中间可能有错误的地方,。
问题解决有加分。

解决方案 »

  1.   

    <?php
    header("Content-type:text/html;charset=utf-8");
    $str="E8A5BFE6B8B8E8AEB0E6B0B4E6B592E4BCA0E4B889E59BBDE6BC94E4B989E7BAA2E6A5BCE6A2A6";
    echo pack('H*',$str);//西游记水浒传三国演义红楼梦
    ?>
      

  2.   

    1楼的大哥真棒,一下就解决了!!
     还想再追加个问题,就是吧字符串 
    $str="E8A5BFE6B8B8E8AEB0E6B0B4E6B592E4BCA0E4B889E59BBDE6BC94E4B989E7BAA2E6A5BCE6A2A6"
    的内容代替为一个文件中的内容,通过
    <?php
    header("Content-type:text/html;charset=utf-8");
    $str = "读取文件的内容"。//忘记了那个函数,等会儿我查一下看看。
    echo pack('H*',$str);//西游记水浒传三国演义红楼梦
    ?>显示文件中的内容。