【问题标题】:php encoding and decodingphp编码和解码
【发布时间】:2015-01-30 16:07:37
【问题描述】:

编码/解码在不同的服务器上工作不同。 在本地,我正在运行 PHP v5.6。 default_charset = UTF-8 根据 php_info()。 当我在 URL 中传递值 's 时,它在输入字段中正确显示为 's

我的 Godaddy 服务器远程运行 PHP v5.3,default_charset = 根据 php_info() 没有值 当我在 URL 中传递 value 时,它​​在输入字段中错误地显示为 %27s

我在 html 文件的头部添加了<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>

有谁知道如何解决这个问题,以便's 在远程服务器上显示为's

【问题讨论】:

  • 这与字符集无关。这是一个正确的 uri 编码的 uri
  • 我应该注意到,无论我是否通过 htmlspecialchars() 或任何其他编码或解码函数传递 ',我都会得到相同的结果。
  • htmlspecialchars 毫无意义。那是为了输出到 html 上下文中。您不是在输出到浏览器,而是在输出到控制台。你需要mb_convert_encoding()

标签: php encoding decoding


【解决方案1】:

您不必用 \' 或 \' 转义单引号吗?

【讨论】:

  • 我相信只有当我担心将值保存在数据库中时。
【解决方案2】:

在输入字段中显示值之前,您需要通过urldecode() 传递值。

【讨论】:

    【解决方案3】:

    ' 不是标准的字母数字字符,因此为了兼容性,它使用URL-encoded with a method similar to this one

    '%27 十六进制或 39 十进制 ASCII 字符。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多