查看: 1307|回复: 7
|
Php Conversion HEX to Char
[复制链接]
|
|
请问有谁懂得用 PHP 将 HEX 转变成 CHAR 吗?
就像把这段HEX字母 6D4B8BD54E2D6587 = 测试中文 |
|
|
|
|
|
|
|
发表于 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
|
显示全部楼层
- $letters = array("6D4B","8BD5","4E2D","6587");
- foreach ($letters as $letter) {
- echo unicode_to_utf8($letter);
- }
- function unicode_to_utf8( $unicode_hex ) {
- $unicode = hexdec($unicode_hex);
- $utf8 = '';
- if ( $unicode < 128 ) {
- $utf8 = chr( $unicode );
- } elseif ( $unicode < 2048 ) {
- $utf8 .= chr( 192 + ( ( $unicode - ( $unicode % 64 ) ) / 64 ) );
- $utf8 .= chr( 128 + ( $unicode % 64 ) );
- } else {
- $utf8 .= chr( 224 + ( ( $unicode - ( $unicode % 4096 ) ) / 4096 ) );
- $utf8 .= chr( 128 + ( ( ( $unicode % 4096 ) - ( $unicode % 64 ) ) /
- 64 ) );
- $utf8 .= chr( 128 + ( $unicode % 64 ) );
- }
- return $utf8;
- }
复制代码
希望帮到你  |
|
|
|
|
|
|
|

楼主 |
发表于 3-10-2007 10:00 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 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就行了
谢谢你的协助。。问题已经解决了。。谢谢。。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|