保证你要转换的字符串编码为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,实际使用的时候作为从开头跳到某字节用.