【问题标题】:HTML Form get data is UTF8 but post data is not?HTML 表单获取数据是 UTF8 但发布数据不是?
【发布时间】:2015-10-07 02:48:12
【问题描述】:

我对一些必须处理特殊德语字母的 perl CGI 脚本有疑问。

我的问题是,例如,如果我的表单使用 GET,我输入到文本字段中的 ö 字符被正确读取,但如果我使用 POST,它变成 ö。我需要它与 POST 一起使用,所以切换到 GET 是不可能的。

网络服务器使用 utf8,我的脚本保存为 utf8,我明确告诉 perl 将所有 CGI 输入视为 utf8 并使用“use CGI -utf8;”我的数据库将客户端编码设置为 utf8。

我可能缺少什么?

【问题讨论】:

  • 您缺少一些示例代码。没有它,我们都只是猜测。
  • 与 IRC 上的 CGI.pm 维护者讨论这个问题,了解您使用的 CGI.pm 版本会很有帮助。
  • 请提供一个最小的、可运行的问题演示。任何演示都是一个好的开始。

标签: perl post utf-8 get cgi


【解决方案1】:

我刚刚使用 CGI 发行版中包含的 example 对此进行了测试,它使用简单的表单在文本字段中发布数据。该示例在其当前状态下使用 utf8 数据工作。如果use CGI-utf8 标志包含,则ö 字符将被损坏。所以这很可能是一个错误。

编辑:深入挖掘这是因为未在变量上设置 utf-8 位 - CGI tries 到 DTRT,但如果未设置 utf-8 位,则它 解码。我会尽快研究这个问题,但没有任何承诺......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2016-07-16
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多