HTML表格获取数据是UTF8但是发布数据不是?

时间:2015-07-17 11:31:15

标签: perl post utf-8 get cgi

我遇到一些必须处理特殊德语字母的perl CGI脚本的问题。

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

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

我可能缺少什么?

1 个答案:

答案 0 :(得分:4)

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

编辑:深入挖掘这是因为utf-8位没有设置在变量上 - CGI tries到DTRT,但如果未设置utf-8位则将< / em>解码。我会尽快调查一下,虽然没有承诺......