【发布时间】:2015-03-06 21:34:20
【问题描述】:
在 PHP 中,我想将包含非 ASCII 字符的字符串转换为十六进制数字序列,表示这些字符的 UTF-8 编码。例如,鉴于此:
$text = 'ąćę';
我需要制作这个:
C4=84=C4=87=C4=99
我该怎么做?
【问题讨论】:
-
这些数字到底是多少?你最终和他们一起做什么?你可以在它们上使用
json_encode,但你不会得到你提到的值。 -
我拿出了一些不相关的文字,按照我的理解阐明了你的最终目标,并明确表示所涉及的字符串只是一个例子。现在,我们需要您提供更多信息才能回答这个问题。 1:这是quoted-printable encoding 你要去吗? 2:第一个C4之前应该有一个等号,是吗? 3:ASCII字符应该怎么处理? (例如,如果字符串是
'ącę',那么应该是=C4=84=63=C4=99,还是=C4=84c=C4=99?) -
@mkaatman 我没有检查,但我 99% 确定 C4 84 C4 87 C4 99 是字符序列
ąćę的 UTF-8 编码中每个字节的十六进制表示(即 U+0105 U+0107 U+0119)。 =XX 符号在我看来很像 MIME quoted-printable 编码。 -
我认为
84实际上应该是85;您可以对文本进行 URL 编码以快速检查。
标签: php unicode utf-8 type-conversion vcf-vcard