<?php
/**
* 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件
* 条件:本文件以及函数的输入参数应该用utf-8编码,不然要加函数转换
* 其实亦可轻易编写反向转换的函数,甚至不局限于汉字,奇怪为什么PHP没有现成函数
* @author xieye
*
* @param {string} $word 必须是一个汉字,或代表汉字的一个数组(用str_split切割过)
* @return {string} 一个十进制unicode码,如4f60,代表汉字 “你”
*
* @example
echo "你 ".getUnicodeFromOneUTF8("你");
echo "<br />";
echo "好 ".getUnicodeFromOneUTF8("好");
echo "<br />";
echo "你好 ".getUnicodeFromOneUTF8("你好");
echo "<br />";
echo "你好吗 ".getUnicodeFromOneUTF8("你好吗");
你 20320
好 22909
你好 251503099357000
你好吗 4.21952182258E+21
*/
function getUnicodeFromOneUTF8($word) {
//获取其字符的内部数组表示,所以本文件应用utf-8编码!
if (is_array( $word))
$arr = $word;
else
$arr = str_split($word);
//此时,$arr应类似array(228, 189, 160)
//定义一个空字符串存储
$bin_str = '';
//转成数字再转成二进制字符串,最后联合起来。
foreach ($arr as $value)
$bin_str .= decbin(ord($value));
//此时,$bin_str应类似111001001011110110100000,如果是汉字"你"
//正则截取
$bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
//此时, $bin_str应类似0100111101100000,如果是汉字"你"
return bindec($bin_str);
//返回类似20320, 汉字"你"
//return dechex(bindec($bin_str));
//如想返回十六进制4f60,用这句
}
echo "你 ".getUnicodeFromOneUTF8("你");
echo "<br />";
echo "好 ".getUnicodeFromOneUTF8("好");
echo "<br />";
echo "你好 ".getUnicodeFromOneUTF8("你好");
echo "<br />";
echo "你好吗 ".getUnicodeFromOneUTF8("你好吗");
exit;
?>
分享到:
相关推荐
本文将从基本概念到进制数转换规则,详细解释二进制、八进制、十进制、十六进制之间的转换方法。 一、基本概念 在计算机科学中,最小的数据单位是位(bit),它是计算机内部的基本存储单位,一个位可以存储0或1两...
在编程领域,尤其是在C#语言中,数据的进制转换是一项基本操作,它涉及将数值从一种基数(如十进制)转换为另一种基数(如二进制、八进制或十六进制)。这里我们将详细探讨这个主题,并提供C#代码实现。 一、十进制...
2. **其他进制转二进制**:可以逐位转换,将每个数字转换成相应的二进制表示。例如,八进制的5转为二进制是0101,十六进制的C转为二进制是1100。 3. **八进制转其他进制**:类似二进制转换,但首先需要将八进制转换...
进制转换器 二进制 八进制 十进制 十六进制
十进制小数转化为十六进制小数类 /// /// 十进制整数转化为十六进制(带小数) /// /// <param name="value"></param> /// <returns></returns> public string DecToHex(double value) { string result =...
了解并掌握汉字转化为二进制的方法,对于进行中文信息处理、编程、网络传输以及数据存储等任务都极其重要。通过深入理解这些知识点,开发者可以更好地处理涉及汉字的数据,确保其在不同环境下的正确性和一致性。
本文将深入探讨二进制、十进制和十六进制之间的转换,并特别关注C51编程中的十六进制处理。此外,ASCII代码表及其与字符的转换也将是讨论的重点。 首先,我们从最基础的开始,二进制(Binary)是计算机内部运算的...
在Java编程语言中,将十进制数转换为二进制、八进制和十六进制是常见的操作,尤其在处理计算机数据表示和计算时。本文将深入探讨这些转换方法。 首先,我们要理解不同进制系统的基础。十进制是我们日常生活最常用的...
本文将详细阐述十进制、八进制、二进制以及十六进制之间的转换工具及其应用。 首先,让我们理解这四种进制的基本原理: 1. **十进制(Decimal)**:我们日常生活中的计数方式,基数为10,每一位的权重由10的幂次...
二进制(Binary)、八进制(Octal)和十六进制(Hexadecimal)是计算机领域最常用的三种非十进制计数体系,它们与十进制之间的转换是编程基础的一部分。 6.1 为什么需要八进制和十六进制? 在编程中,尽管我们通常...
本文将深入解析Delphi中关于十进制、二进制、十六进制以及字符串之间的转换方法,旨在为程序员提供实用且精炼的代码示例。 ### 十进制转其他进制 #### 十进制转二进制 在Delphi中,将一个整数转换成二进制字符串...
- **十进制转十六进制**:可以先将十进制数转换为二进制,再分组转换成十六进制。例如,十进制数133转换为十六进制就是0x 85。 - **十六进制转二进制**:每个十六进制数字对应四位二进制数。例如,十六进制数AB转换...
根据给定的文件信息,本篇文章将围绕C语言编程题展开,主要介绍如何从键盘接收一个十进制数,并将其转换成二进制、八进制以及十六进制数进行输出的方法。 ### 一、问题描述 题目要求通过C语言编程实现从键盘输入一...
在本案例中,`Stack`类被用来实现将十进制数转换为二进制、八进制和十六进制的功能。 #### 二、十进制数转换为其他进制数 **1. 基本原理** - **十进制转二进制**: 不断除以2取余数,直到商为0为止,最后将所有...
"二进制八进制十进制十六进制之间的转换算法" 本文主要讲解了二进制、八进制、十进制、十六进制之间的转换算法。包括十进制与二进制之间的转换、八进制与二进制之间的转换、十六进制与二进制之间的转换等。 十进制...
本文将深入探讨二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)这四种常见进制之间的转换方法,帮助你更好地理解和应用这些知识。 一、二进制(Binary) 二进制是计算机语言的...
在计算机科学中,数字的表示方式至关重要,尤其是二进制、十进制、八进制和十六进制。这些不同的进制系统各自有着独特的特点和应用场景。本文将深入探讨这四种进制之间的转换方法。 首先,我们要理解每种进制的基本...
在计算机科学中,二进制、十进制和十六进制是三种常见的数值表示方式,它们在编程和硬件设计中有着广泛的应用。汇编语言作为底层编程语言,直接与计算机硬件交互,因此理解和掌握如何在汇编中进行不同进制之间的转换...
例如,当你查看计算机内存或处理二进制数据时,可能需要将二进制转换成更容易理解的十进制或十六进制。同时,十六进制在表示颜色代码(如HTML颜色代码)或内存地址时特别有用,因为它比二进制更紧凑,但又不像十进制...
本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将深入了解其工作原理,并探讨每一步操作的具体实现细节。 #### 二、基础知识 在...