PHP实现UTF8二进制及明文字符串的转化功能示例

本文实例讲述了PHP实现UTF8二进制及明文字符串的转化功能。分享给大家供大家参考,具体如下:

<?php
/***********本程序由云客编写。有空的时候承接php软件开发
*满足一下新手们的好奇心,看看UTF-8的二进制是什么样子滴
****************************/
define("b", "<br>");
$a = "FE";
$a1 = "FF";
$s = 16;
$e = 2;
echo $s . "进制的" . $a . "表示为" . $e . "进制是" . base_convert($a, $s, $e) . b;
echo $s . "进制的" . $a1 . "表示为" . $e . "进制是" . base_convert($a1, $s, $e) . b;
$str = "计算机rr我们是谁?";
$strlen = strlen($str);
$n = 0;
echo $str.'(二进制UTF-8表示):'.b;
$str_bin='';
while ($n < $strlen)
{
  $t = ord($str[$n]);
  $stra=base_convert($t, 10, 2) ;
  if(strlen($stra)<8)
  {
    $stra="0".$stra;
  }
  $str_bin.=$stra;
  $n++;
}
echo $str_bin.b;//已经翻译为二进制了
$str_bin="1110100010101110101000011110011110101110100101111110011010011100101110100110000101110011111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111"; //在此输入二进制,程序编码为明文输出
$chr='';
$str='';
for($i=0;$i<strlen($str_bin);$i++)
{
  $chr.=$str_bin[$i];
  if(($i+1)%8==0)
  {
    $str.=chr(base_convert($chr, 2, 10));
    $chr=NULL;
  }
}
echo $str;//二进制的UTF8原代码明文
?>

运行结果:

16进制的FE表示为2进制是11111110
16进制的FF表示为2进制是11111111
计算机rr我们是谁?(二进制UTF-8表示):
1110100010101110101000011110011110101110100101111110011010011100101110100111001001110010111001101000100010010001111001001011101110101100111001101001100010101111111010001011000010000001111011111011110010011111
计算机as我们是谁?

PS:这里再为大家推荐几款相关在线编码转换工具供大家参考使用:

UTF-8编码转换工具:
http://tools.jb51.net/transcoding/convutf

在线编码转换工具(utf-8/utf-32/Punycode/Base64):
http://tools.jb51.net/transcoding/decode_encode_tool

Native/UTF-8在线编码转换工具:
http://tools.jb51.net/transcoding/native2utf8

在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • PHP UTF8编码内的繁简转换类

    曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头.其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来.以下是代码,不知道有没有bug,大家如果在使用上有问题,可以提出来 复制代码 代码如下: <?php //<meta charset=utf-8"> class utf8_chinese { private $utf8_gb2312; private $utf8_big5; public function __c

  • PHP通过iconv将字符串从GBK转换为UTF8字符集

    1. iconv()介绍 iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件.例如:从GB2312转换为UTF-8. iconv函数在php5中内置,GB字符集默认打开. 2. iconv()错误 iconv在转换字符"-"到gb2312时会出错,解决方法是在需要转成的编码后加 "//IGNORE",也就是iconv函数第二个参数后.如下: 复制代码 代码如下: iconv("UTF-8", "GB2312//IGNO

  • PHP二进制与字符串之间的相互转换教程

    本文主要介绍了php二进制与字符串之间的相互转换教,有需要的朋友可以来了解一下. php代码如下: <?php header("Content-type: text/html; charset=utf-8"); /** * 将字符串转换成二进制 * @param type $str * @return type */ function StrToBin($str){ //1.列出每个字符 $arr = preg_split('/(?<!^)(?!$)/u', $str);

  • PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP 4, PHP 5) decbin -- 十进制转换为二进制 说明 string decbin ( int number ) 返回一字符串,包含有给定 number 参数的二进制表示.所能转换的最大数值为十进制的 4294967295,其结果为

  • 支持生僻字且自动识别utf-8编码的php汉字转拼音类

    拼音类文件py_class.php源码如下: <?php class py_class{ function py_class(){ $this -> pinyin = array( "a" => array(59371, 41648, 50400, 33157, 41392, 18661, 47599), "ai" => array(19697, 32178, 35504, 36856, 20712, 25068, 28663, 26608,

  • PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析

    本文实例讲述了PHP实现十进制.二进制.八进制和十六进制转换相关函数用法.分享给大家供大家参考,具体如下: 1.二进制: 1.1.二进制转十进制: 函数:bindec(string $binary_string) @param $binary_string 参数表示所要转换的二进制字符串. @return  返回与$binary_string参数所表示的二进制数的十进制数等价值. 函数说明: bindec()将一个二进制数转换成Integer类型或者出于大小的需要,转换为float类型. bin

  • PHP如何实现Unicode和Utf-8编码相互转换

    最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了... Unicode和Utf-8编码的区别 Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1个字节.Unicode为双字节,而UTF-8中汉字占三个字节. UTF-8编码字符理论上可以最多到6个字节

  • 用PHP实现将GB编码转换为UTF8

    gb2utf8.php 文件如下: 复制代码 代码如下: <?php Class GB2UTF8  {  var $gb; // 待转换的GB2312字符串  var $utf8; // 转换后的UTF8字符串  var $CodeTable; // 转换过程中使用的GB2312代码文件数组  var $ErrorMsg; // 转换过程之中的错误讯息 function GB2UTF8($InStr="")  {  $this->gb=$InStr;  $this->

  • 用PHP将Unicode 转化为UTF-8的实现方法(推荐)

    实例如下: function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r); $ar = $r[0]; //print_r($ar); foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u"){ $ar[$k] = iconv("U

  • PHP中实现中文字符进制转换原理分析

    一,中文字符转十进制原理分析 GBK编码中一个汉字由二个字符组成,获取汉字字符串的方法如下 复制代码 代码如下: $string = "不要迷恋哥"; $length = strlen($string); for($i=0;$i<$length;$i++){ if(ord($string[$i])>127){ $result[] = ord($string[$i]).' '.ord($string[++$i]); } } var_dump($result); 由于一个汉字为

  • php utf-8转unicode的函数第1/2页

    UTF编码 UTF-8就是以8位为单元对UCS进行编码.从UCS-2到UTF-8的编码方式如下: UCS-2编码(16进制) UTF-8 字节流(二进制) 0000 - 007F 0xxxxxxx 0080 - 07FF 110xxxxx 10xxxxxx 0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 例如"汉"字的Unicode编码是6C49.6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxx

随机推荐