佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1307|回复: 7

Php Conversion HEX to Char

[复制链接]
发表于 2-10-2007 12:02 PM | 显示全部楼层 |阅读模式
请问有谁懂得用 PHP 将 HEX 转变成 CHAR 吗?

就像把这段HEX字母 6D4B8BD54E2D6587 = 测试中文
回复

使用道具 举报


ADVERTISEMENT

发表于 2-10-2007 05:03 PM | 显示全部楼层

回复 #1 Mashino 的帖子

你要转换成什么character encoding?
回复

使用道具 举报

 楼主| 发表于 2-10-2007 05:51 PM | 显示全部楼层

回复 #2 ikanyuchiew 的帖子

我想用php直接把 HEX 转成 UTF8 。。请问有什么高见吗?谢谢。。

我尝试用过以下的script,但没反应。。
function HexToUtf ($UtfCharInHex)
{
                    $OutputChar = "";
                  $UtfCharInDec = hexdec($UtfCharInHex);
                    if($UtfCharInDec<128) $OutputChar .= chr($UtfCharInDec);
                    else if($UtfCharInDec<2048)$OutputChar .= chr(($UtfCharInDec>>6)+192).chr(($UtfCharInDec&63)+128);
                    else if($UtfCharInDec<65536)$OutputChar .= chr(($UtfCharInDec>>12)+224).chr((($UtfCharInDec>>6)&63)+128).chr(($UtfCharInDec&63)+128);
                    else if($UtfCharInDec<2097152)$OutputChar .= chr($UtfCharInDec>>18+240).chr((($UtfCharInDec>>12)&63)+128).chr(($UtfCharInDec>>6)&63+128). chr($UtfCharInDec&63+128);
}
回复

使用道具 举报

 楼主| 发表于 2-10-2007 05:52 PM | 显示全部楼层
原帖由 ikanyuchiew 于 2-10-2007 05:03 PM 发表
你要转换成什么character encoding?


我想用php直接把 HEX 转成 UTF8 。。请问有什么高见吗?谢谢。。

我尝试用过以下的script,但没反应。。
function HexToUtf ($UtfCharInHex)
{
                    $OutputChar = "";
                  $UtfCharInDec = hexdec($UtfCharInHex);
                    if($UtfCharInDec<128) $OutputChar .= chr($UtfCharInDec);
                    else if($UtfCharInDec<2048)$OutputChar .=chr(($UtfCharInDec>>6)+192).chr(($UtfCharInDec&63)+128);
                    else if($UtfCharInDec<65536)$OutputChar .=chr(($UtfCharInDec>>12)+224).chr((($UtfCharInDec>>6)&63)+128).chr(($UtfCharInDec&63)+128);
                    else if($UtfCharInDec<2097152)$OutputChar .=chr($UtfCharInDec>>18+240).chr((($UtfCharInDec>>12)&63)+128).chr(($UtfCharInDec>>6)&63+128).chr($UtfCharInDec&63+128);
}
回复

使用道具 举报

发表于 2-10-2007 07:27 PM | 显示全部楼层
  1.   $letters = array("6D4B","8BD5","4E2D","6587");
  2.   foreach ($letters as $letter) {
  3.      echo unicode_to_utf8($letter);
  4.   }

  5. function unicode_to_utf8( $unicode_hex ) {
  6.     $unicode = hexdec($unicode_hex);
  7.     $utf8 = '';
  8.     if ( $unicode < 128 ) {
  9.         $utf8 = chr( $unicode );
  10.     } elseif ( $unicode < 2048 ) {
  11.         $utf8 .= chr( 192 +  ( ( $unicode - ( $unicode % 64 ) ) / 64 ) );
  12.         $utf8 .= chr( 128 + ( $unicode % 64 ) );
  13.     } else {
  14.         $utf8 .= chr( 224 + ( ( $unicode - ( $unicode % 4096 ) ) / 4096 ) );
  15.         $utf8 .= chr( 128 + ( ( ( $unicode % 4096 ) - ( $unicode % 64 ) ) /
  16. 64 ) );
  17.         $utf8 .= chr( 128 + ( $unicode % 64 ) );
  18.     }
  19.          return $utf8;
  20. }
复制代码


希望帮到你
回复

使用道具 举报

 楼主| 发表于 3-10-2007 10:00 AM | 显示全部楼层
原帖由 ikanyuchiew 于 2-10-2007 07:27 PM 发表
  $letters = array("6D4B","8BD5","4E2D","6587";
  foreach ($letters as $letter) {
     echo unicode_to_utf8($letter);
  }

function unicode_to_utf8( $unicode_hex ) {
    $unicode = hexdec ...



谢谢你的帮助。。但转变的成果出来还是乱码来的。。不能正常显示中文字。。
回复

使用道具 举报

Follow Us
发表于 3-10-2007 11:34 AM | 显示全部楼层

回复 #6 Mashino 的帖子

确定在http 和 html 的 header - charset 设为 UTF-8就行了
回复

使用道具 举报

 楼主| 发表于 3-10-2007 03:15 PM | 显示全部楼层
原帖由 ikanyuchiew 于 3-10-2007 11:34 AM 发表
确定在http 和 html 的 header - charset 设为 UTF-8就行了


谢谢你的协助。。问题已经解决了。。谢谢。。
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 21-9-2025 10:43 PM , Processed in 0.118540 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表