当前位置: 首页 > 工具软件 > chr247 > 使用案例 >

chr()函数和ord()函数进行字符串与ASCII码之间的转换

羊舌承
2023-12-01
1.chr()函数 
该函数用于将ASCII码值转化为字符串。其函数声明如下: 
string chr (int ascii); 
2.ord()函数 
该函数用于将字符串转化为ASCII码值。其函数声明如下: 
int ord(string str); 
例子: 
使用chr()函数和ord()函数进行字符串与ASCII码之间的转换,程序代码如下: 
<?php 
$str1=chr(88); 
echo $str1; //返回值为X 
echo "\t"; 
$str2=ord('S'); 
echo $str2; //返回值为83 
?> 
运行结果:X 83

ASCII码:美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符(包括字母、数字、标点符号控制字符及其他符号)分配(或指定)数值。
ASCII码于1968年提出,用于在不同计算机硬件软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和128个字符的扩充ASCII码。

每个汉字有个二进制编码,叫汉字国标码
在我国汉字代码标准GB2312-80中有6763个常用汉字规定了二进制编码
每个汉字使用2个字节。
GB2312-80 GB2312将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。01-09区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计 3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。故而 GB2312最多能表示6763个汉字。
ANSII是标准国际编码,只有256个字符,没有汉字,所以表示不了汉字
你说的应该是ansi编码吧,那是系统根据当前地区然后确定的当地编码,例如大陆的ansi编码就代表 国标码GBK编码。
如果是台湾的话,ansi就应该是big5……

这里面涉及编码范围问题,Unicode,big5,gbk国标码都是两个字节表示一个汉字,而utf8是三个字节表示一个汉字。
而且这几种编码中有大量重叠,很难直接判断一个字是哪一种编码,

例如下面:汉字编码范围
名称 第一字节 第二字节
GB2312 0xB0-0xF7(176-247) 0xA0-0xFE(160-254)
GBK 0x81-0xFE(129-254) 0x40-0xFE(64-254)
Big5 0x81-0xFE(129-255) 0x40-0x7E(64-126)
0xA1-0xFE(161-254)
 类似资料: