Perl CGI脚本默认使用什么内容编码?
-
05-07-2019 - |
解决方案
默认情况下,Perl将字符串作为字节序列处理,因此如果从文件中读取并将其打印到STDOUT,它将生成相同的字节序列。如果您的模板是Latin-1,那么您的输出也将是Latin-1。
如果在文本字符串上下文中使用字符串(例如 uc
, lc
等),perl会假定为Latin-1语义,除非字符串之前已被解码
其他提示
Perl不会假设任何东西,但浏览器假设编码通常基于猜测。如果没有使用任何编码技术,则直接输出文档,就像它们被编写一样。
您可以在HTTP Content-Type标头中指定字符集。
我看的第一个地方是服务器配置。如果您没有在程序中设置内容编码标题,那么您可能会接受服务器的猜测。
独立于服务器运行脚本以查看其实际输出。当服务器从CGI程序(不是nph)获取输出时,服务器会在将其发送给客户端之前修复它认为缺少的任何内容。
如果浏览器将内容报告为iso-8859-1,那么你的perl脚本可能没有输出正确的标题来指定字符集吗?
不隶属于 StackOverflow