php 怎么将utf-8格式的汉字转换成16进制?

发布网友 发布时间:2022-04-28 02:05

我来回答

3个回答

懂视网 时间:2022-04-28 06:26

php字符串转为16进制的方法:首先创建一个PHP示例文件;然后通过String2Hex方法将字符串转为16进制;最后通过return返回转换结果即可。

推荐:《PHP视频教程》

php字符串和16进制编码的相互转换

php字符串是十进制的

/**
**字符串转16进制
**/
 public function String2Hex($string){
 $hex='';
 for ($i=0; $i < strlen($string); $i++){
  $hex .= dechex(ord($string[$i]));
 }
 return $hex;
 }
/**
**16进制转字符串
**/
 public function Hex2String($hex){
 $string='';
 for ($i=0; $i < strlen($hex)-1; $i+=2){
  $string .= chr(hexdec($hex[$i].$hex[$i+1]));
 }
 return $string;
 }
// example:
$hex = String2Hex("test sentence...");
// $hex contains 746573742073656e74656e63652e2e2e
echo Hex2String($hex);
// outputs: test sentenc

我在做aes加密是发现一个问题,发现将字符串转16进制会出现转出数据位数对不上的问题可以修改为如下试试:

 public function String2Hex($string){
 $hex='';
// for ($i=0; $i < strlen($string); $i++){
//  $hex .= dechex(ord($string[$i]));
// }
 $hex = bin2hex($string);
 return $hex;
 }

热心网友 时间:2022-04-28 03:34

//字符串转换成16进制
function str2hex($str){
$hex = '';
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字符测试
$str = '中文';
echo mb_strlen($str);
echo '<br>';

$hex = str2hex($str);
echo $hex;
echo '<br>';

$dec = hex2str($hex);
echo $dec;
echo "<br>";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '<br>';

$hex = str2hex($gbkstr);
echo $hex;
echo '<br>';

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "<br>";
}

热心网友 时间:2022-04-28 04:52

//字符串转换成16进制
function str2hex($str){
$hex = '';
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字符测试
$str = '中文';
echo mb_strlen($str);
echo '';

$hex = str2hex($str);
echo $hex;
echo '';

$dec = hex2str($hex);
echo $dec;
echo "";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '';

$hex = str2hex($gbkstr);
echo $hex;
echo '';

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "";
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com