汉字和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) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)》
文章链接:https://www.lbyxlz.com/%e6%b1%89%e5%ad%97%e5%92%8cunicode%e7%a0%81utf-8%e4%b9%8b%e9%97%b4%e7%9a%84%e8%bd%ac%e6%8d%a2pack-unpack/
分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活