相关疑难解决方法(0)

如何在HTTP中编码Content-Disposition头文件名参数?

想要强制下载资源而不是直接在Web浏览器中呈现资源的Web应用程序Content-Disposition在表单的HTTP响应中发出标头:

Content-Disposition: attachment; filename=FILENAME

filename参数可用于建议浏览器下载资源的文件的名称.但是,RFC 2183(Content-Disposition)在2.3节(文件名参数)中指出文件名只能使用US-ASCII字符:

当前[RFC 2045]语法将参数值(以及因此内容处理文件名)限制为US-ASCII.我们认识到允许在文件名中使用任意字符集的巨大愿望,但是定义必要的机制超出了本文档的范围.

然而,有经验证据表明,当今大多数流行的Web浏览器似乎都允许非US-ASCII字符(缺乏标准)对编码方案和文件名的字符集规范不同意.问题是,如果文件名"naïvefile"(没有引号,第三个字母是U + 00EF)需要编码到Content-Disposition标题中,那么流行浏览器采用的各种方案和编码是什么?

出于这个问题的目的,流行的浏览器是:

  • 火狐
  • IE浏览器
  • 苹果浏览器
  • 谷歌浏览器
  • 歌剧

browser specifications http-headers

509
推荐指数
15
解决办法
33万
查看次数

PHP将字符串转换为十六进制,十六进制转换为

我在PHP中转换这两种类型时遇到了问题.这是我在谷歌搜索的代码

function strToHex($string){
    $hex='';
    for ($i=0; $i < strlen($string); $i++){
        $hex .= dechex(ord($string[$i]));
    }
    return $hex;
}


function hexToStr($hex){
    $string='';
    for ($i=0; $i < strlen($hex)-1; $i+=2){
        $string .= chr(hexdec($hex[$i].$hex[$i+1]));
    }
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

当我使用XOR加密时,我检查并发现了这一点.

我有字符串"this is the test",在带有键的XOR之后,我的结果是字符串???§P?§P ?§T?§?.之后,我尝试通过函数strToHex()将其转换为十六进制,我得到了这些12181d15501d15500e15541215712.然后,我测试了函数hexToStr(),我有???§P?§P?§T?§q.那么,我该怎么做才能解决这个问题呢?当我转换这个2样式值时为什么会出错?

php string hex

43
推荐指数
4
解决办法
18万
查看次数

标签 统计

browser ×1

hex ×1

http-headers ×1

php ×1

specifications ×1

string ×1