Wiktionary请求返回的\xd8、%D8格式阿拉伯语字符属于什么编码?
两类编码的正式定义
\xd8开头的格式:是 UTF-8编码字节的字符串转义表示,常见于各类编程语言的字符串输出场景,用\x加两位十六进制数表示单个UTF-8编码字节,多字节的UTF-8字符会显示为连续的多个\x开头的转义段。%D8开头的格式:是 URL百分号编码(URL Encoding),属于URI规范定义的通用编码规则,用于转义URL中不允许直接出现的非ASCII字符、特殊符号,编码逻辑是先将目标字符转换为UTF-8字节序列,再对每个字节用%加两位十六进制数表示。
编码不匹配的原因
你之前查阿拉伯文字符的十六进制编码出现不匹配,大概率是你查阅的是阿拉伯文字符的Unicode码点十六进制值,而非字符经UTF-8编码后的字节值。
举个验证示例:阿拉伯文字母「ر」的Unicode码点是U+0631(对应十六进制值0x0631),而该字符经UTF-8编码后得到的是两个字节0xD8 0xB1,对应你看到的\xd8\xb1转义串、以及URL里的%D8%B1编码段。将连续的编码段按规则解码为UTF-8,即可得到原本的阿拉伯语词汇。
内容的提问来源于stack exchange,提问作者AdmosJagashvili
相关产品推荐
相关产品推荐

