是否有任何Perl XS模块具有高速子程序,适合编码/解码unicode cookie(特别是Firefox)中的非标准%uXXXX unicode字符?
解码:input = ...%uXXXX ...,output =正常的utf8 Perl字符串
encoding:input =普通的utf8 Perl字符串,输出= ...%uXXXX ...
现在我正在使用以下代码解码这些字符串:
$string =~ s/%u([A-Fa-f0-9]{4})/chr(hex($1))/eg;
但是有一个C实现的版本会很好。
答案 0 :(得分:2)
此特定格式本身与cookie无关,但是应用于cookie的常见编码形式之一。它由JavaScript函数escape()
生成。它看起来很像URL编码,但它不兼容; JS作者确实需要停止使用它。
URI::Escape::JavaScript 有一个实现可以重现unescape
算法。它与您的方法基本相同,但也处理两位数的%xx
模式。
尝试将JS-escape编码视为URL编码扩展的模块可能会因+
字符的可能不同处理而跳闸。
我怀疑任何应用程序都会花费足够的时间对其进行解码,以使其值得在C中实现,真的。
答案 1 :(得分:0)