php

汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)

dafenqi
2023-08-28 / 0 评论 / 5 阅读 / 正在检测是否收录...

汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)

保证你要转换的字符串编码为UTF8,如果不是,请iconv cnStr成utf8

$cnStr = "中"; //utf8的中文
//unicode
$code = unpack("H6codes", $cnStr);
//汉字
$cnStr = pack("H6", $code['codes']);

恩, pack/unpack很强大,, 和c语言交换数据, 二进制方式的序列化,操作二进制文件.. etc...
附上format参数的说明:

a NUL-padded string, 即"\0"作为"空字符"的表示形式
A SPACE-padded string, 空格作为"空字符"的表示形式
h Hex string, low nibble first,升序位顺序
H Hex string, high nibble first,降序位顺序
c signed char, 有符号单字节
C unsigned char, 无符号单字节
s signed short (always 16 bit, machine byte order)
S unsigned short (always 16 bit, machine byte order)
n unsigned short (always 16 bit, big endian byte order)
v unsigned short (always 16 bit, little endian byte order)
i signed integer (machine dependent size and byte order)
I unsigned integer (machine dependent size and byte order)
l signed long (always 32 bit, machine byte order)
L unsigned long (always 32 bit, machine byte order)
N unsigned long (always 32 bit, big endian byte order)
V unsigned long (always 32 bit, little endian byte order)
f float (machine dependent size and representation)
d double (machine dependent size and representation)
x NUL byte, 实际使用的时候作为跳过多少字节用,很有用
X Back up one byte, 后退1字节
@ NUL-fill to absolute position,实际使用的时候作为从开头跳到某字节用.
0

Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php on line 1032

评论 (0)

取消