gpt4 book ai didi

php - strlen,mb_strlen,该用哪个?

转载 作者:IT王子 更新时间:2023-10-29 00:07:42 24 4
gpt4 key购买 nike

我如何知道 $_REQUEST 中的字符集?以及如何设置 $_REQUEST 的字符集?

最佳答案

简而言之:您并不真正了解通过 GET 或 POST 传递给 PHP 脚本的变量所使用的编码(字符集)(尤其是 GET 在这里是个问题)。按照惯例,浏览器将表单 POST 到 action 中指定的服务器端资源。 - 使用页面编码的属性,可以通过 http-equiv 指定-meta-tag(charset -HTML5 中的-meta-tag)或通过 HTTP header 。或者,一些浏览器也尊重 accept-charset -选择正确编码时在表单上的属性。

GET 参数和 URL 本身的编码取决于浏览器设置,因此可以由用户控制。您不应依赖特定的编码。

通常,您将通过始终对所有内容使用 UTF-8 并在 HTTP header (Content-Type: text/html; charset=UTF-8) 中指定正确的编码来绕过大多数与编码相关的问题 - 这将在中产生正确的编码 (UTF-8)传递到您的字符串中的所有变量(我们不是在谈论故意试图破坏编码以允许某些攻击向量进入您的脚本的恶意脚本)。您也不应该依赖 GET 参数或 URL 中的非 ascii 字符(这也是 SEO 友好链接删除或替换这些字符的原因)。

如果您确定 UTF-8 是唯一允许的字符集,您可以使用 mb_strlen($string, 'UTF-8')例如检查变量的长度。

编辑:(添加了一些链接)

一些内容供您阅读:

关于php - strlen,mb_strlen,该用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com